Bildschutz - Wasserzeichen auf Bilder
7,99 €
php Scripte 🇩🇪 Deutschland
3 Aufrufe
06.03.2026
👤 phppower
🖼️ Bildschutz - Wasserzeichen auf Bilder
📋 Überblick
Professioneller Bildschutz-Service zum Hinzufügen von Wasserzeichen auf Bilder.
**Features:**
- 🖼️ **Alle Formate:** JPG, PNG, WEBP, GIF, BMP
- 📝 **Text oder Logo:** Flexible Wasserzeichen-Typen
- ⚡ **Batch-Processing:** Mehrere Bilder gleichzeitig
- 🎨 **Anpassbar:** Position, Größe, Farbe, Transparenz
- 📱 **Responsive:** Mobile-optimiert
- 🚀 **Schnell:** Sofortige Verarbeitung
✨ Features im Detail
Unterstützte Formate:
| Format | Lesen | Schreiben | Transparenz |
|--|-|--|-|
| JPG | ✅ | ✅ | ❌ |
| PNG | ✅ | ✅ | ✅ |
| WEBP | ✅ | ✅ | ✅ |
| GIF | ✅ | ✅ | ✅ |
| BMP | ✅ | ✅ | ❌ |
Wasserzeichen-Typen:
**Text-Wasserzeichen:**
- Eigener Text (z.B. \"© 2026 Ihr Name\")
- Schriftgröße: 10-100px
- Farbe: Frei wählbar
- Transparenz: 0-100%
**Logo-Wasserzeichen:**
- Eigenes Logo hochladen
- Größe: 50-500px
- Position frei wählbar
- Transparenz: 0-100%
Positionen:
- ✅ Unten Rechts (Default)
- ✅ Unten Links
- ✅ Oben Rechts
- ✅ Oben Links
- ✅ Mitte
Ausgabeformate:
- Original beibehalten
- Konvertierung zu JPG
- Konvertierung zu PNG
- Konvertierung zu WEBP
💻 Technische Details
Dateien:
- **index.php** - Upload & Einstellungen
- **process.php** - Verarbeitung (ALLE FORMATE!)
- **style.css** - Cyan/Blue Gradient-Design
- **protected_images/** - Output-Verzeichnis
Logo:
svg
Cyan→Blue Gradient mit Bild-Icon und ©-Symbol
- Skalierbar
- Eingebettet
PHP-Funktionen:
php
loadImage() // JPG, PNG, WEBP, GIF, BMP
saveImage() // Alle Formate mit Qualität
addTextWatermark() // Text mit TrueType
addLogoWatermark() // Logo mit Transparenz
calculatePosition() // 5 Positionen
🚀 Installation
Schritt 1: Dateien hochladen
bash
Alle Dateien in Webverzeichnis hochladen
Schritt 2: Verzeichnisse prüfen
bash
chmod 755 protected_images/
Schritt 3: PHP-Extensions prüfen
bash
php -m | grep -E \"gd|imagick\"
**Benötigt:**
- ✅ GD Library (für Bildverarbeitung)
- ✅ PHP 8.0+ empfohlen
Schritt 4: TrueType-Font (Optional)
bash
Für bessere Text-Qualität:
Lade arial.ttf herunter und lege es im Root ab
**Ohne TTF:** System-Font wird verwendet (funktioniert, aber kleiner)
📖 Benutzung
Text-Wasserzeichen:
1. **Bilder hochladen** (Drag & Drop oder Klick)
2. **\"Text\" auswählen**
3. **Text eingeben** (z.B. \"© 2026 Mein Name\")
4. **Schriftgröße einstellen** (10-100px)
5. **Farbe wählen** (Farbwähler)
6. **Position wählen** (z.B. \"Unten Rechts\")
7. **Transparenz einstellen** (0-100%)
8. **\"Wasserzeichen hinzufügen\" klicken**
9. **Geschützte Bilder herunterladen**
Logo-Wasserzeichen:
1. **Bilder hochladen**
2. **\"Logo\" auswählen**
3. **Logo hochladen** (PNG mit Transparenz empfohlen)
4. **Logo-Größe einstellen** (50-500px)
5. **Position wählen**
6. **Transparenz einstellen**
7. **\"Wasserzeichen hinzufügen\" klicken**
8. **Geschützte Bilder herunterladen**
Batch-Processing:
1. Mehrere Bilder auswählen (Strg/Cmd + Klick)
2. Einstellungen vornehmen
3. Alle Bilder werden mit gleichen Einstellungen verarbeitet
4. Einzeln herunterladen
🎨 Design-Anpassung
Farben ändern:
**In style.css:**
css
:root {
--primary: 06b6d4; /* Cyan */
--secondary: 3b82f6; /* Blue */
--gradient: linear-gradient(135deg, var(--primary), var(--secondary));
}
Logo-Farben:
**In index.php (SVG):**
html
<stop offset=\"0%\" style=\"stop-color:06b6d4\" />
<stop offset=\"100%\" style=\"stop-color:3b82f6\" />
🐛 Troubleshooting
Problem: \"Konnte Bild nicht laden\"
**Lösung:**
1. **GD Library installiert?**
bash
apt install php-gd
oder
yum install php-gd
2. **PHP neu starten:**
bash
systemctl restart php-fpm
3. **Format unterstützt?**
php
<?php
print_r(gd_info());
?>
Problem: WEBP nicht unterstützt
**Lösung:**
bash
PHP mit WEBP-Support kompilieren oder
apt install php-gd libwebp-dev
Problem: Text zu klein
**Lösung:**
1. **TTF-Font verwenden:**
- arial.ttf herunterladen
- In Root-Verzeichnis legen
- Automatisch erkannt!
2. **Schriftgröße erhöhen** (im Frontend)
Problem: Transparenz geht verloren
**Lösung:**
- ✅ PNG verwenden (behält Transparenz)
- ✅ WEBP verwenden (behält Transparenz)
- ❌ JPG verwendet (keine Transparenz möglich)
Problem: Zu langsam bei vielen Bildern
**Lösung:**
1. **PHP Memory erhöhen:**
ini
memory_limit = 512M
2. **Max Upload Size erhöhen:**
ini
upload_max_filesize = 50M
post_max_size = 50M
3. **Bilder vorher verkleinern**
🔒 Sicherheit
Implementiert:
- ✅ **File-Type Validierung**
- ✅ **Directory Protection** (.htaccess)
- ✅ **XSS-Schutz** (htmlspecialchars)
- ✅ **Upload-Limits**
Empfehlungen:
1. **HTTPS verwenden** (Let's Encrypt)
2. **Upload-Limit setzen** (max 10MB pro Bild)
3. **Rate-Limiting** (max X Uploads/Stunde)
4. **Temp-Files löschen** (automatisch nach 24h)
.htaccess für protected_images/:
apache
<Files *.php>
deny from all
</Files>
Order Deny,Allow
Deny from all
Allow from all
📊 Performance
Benchmarks (PHP 8.2, 4GB RAM):
| Bildgröße | Format | Verarbeitung |
|--|--|--|
| 1 MB | JPG | ~0.3s |
| 2 MB | PNG | ~0.5s |
| 3 MB | WEBP | ~0.4s |
| 5 MB | GIF | ~1.2s |
**Batch (10 Bilder à 2MB):** ~5-8 Sekunden
Optimierung:
php
// In process.php anpassen:
imagejpeg($image, $path, 85); // Qualität: 95→85 (schneller)
imagepng($image, $path, 6); // Kompression: 9→6 (schneller)
💡 Tipps & Tricks
Beste Ergebnisse:
1. **PNG für Logos** (Transparenz!)
2. **Weiße Schrift mit 80% Opacity** (gut sichtbar)
3. **Logo-Größe ~10-15% der Bildgröße**
4. **Position \"Unten Rechts\"** (Standard)
Logo vorbereiten:
bash
Empfohlene Logo-Eigenschaften:
Format: PNG
Größe: 500x500px (quadratisch)
Hintergrund: Transparent
Farbe: Weiß oder Hell
Batch-Workflow:
1. Alle Bilder in Ordner sammeln
2. Alle hochladen
3. Einstellungen einmal vornehmen
4. Alle verarbeiten
5. ZIP-Download (TODO: Feature)
🚀 Erweiterungen (Zukünftig)
**Mögliche Features:**
- [ ] ZIP-Download (alle geschützten Bilder)
- [ ] Vorschau vor Verarbeitung
- [ ] Wasserzeichen-Templates speichern
- [ ] Mehrere Wasserzeichen pro Bild
- [ ] Gekachelte Wasserzeichen
- [ ] Metadata entfernen (EXIF)
- [ ] Automatische Größenanpassung
- [ ] Cloud-Upload (Dropbox, Google Drive)
- [ ] API für Entwickler
🎨 Logo als separate Datei
**logo.svg erstellen:**
svg
<svg width=\"200\" height=\"200\" xmlns=\"http://www.w3.org/2000/svg\">
<defs>
<linearGradient id=\"grad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">
<stop offset=\"0%\" style=\"stop-color:06b6d4\" />
<stop offset=\"100%\" style=\"stop-color:3b82f6\" />
</linearGradient>
</defs>
<rect x=\"40\" y=\"60\" width=\"120\" height=\"90\" rx=\"8\" fill=\"url(grad)\"/>
<circle cx=\"70\" cy=\"95\" r=\"12\" fill=\"white\" opacity=\"0.8\"/>
<path d=\"M 50 130 L 75 105 L 105 130 L 135 105 L 135 145 L 50 145 Z\" fill=\"white\" opacity=\"0.8\"/>
<text x=\"100\" y=\"180\" font-family=\"Arial\" font-size=\"24\" fill=\"white\" text-anchor=\"middle\" font-weight=\"bold\">©</text>
</svg>
**Einbinden:**
html
<img src=\"logo.svg\" alt=\"Bildschutz\" width=\"60\" height=\"60\">
📝 Beispiel-Workflows
Fotograf:
1. Shooting-Fotos hochladen
2. Logo mit Firmenname hochladen
3. Position: Unten Rechts
4. Transparenz: 70%
5. Verarbeiten
6. An Kunden senden
Designer:
1. Portfolio-Bilder schützen
2. Text: \"© 2026 Designer Name\"
3. Schriftgröße: 24px
4. Position: Unten Links
5. Transparenz: 60%
6. Auf Website hochladen
E-Commerce:
1. Produktfotos hochladen
2. Text: \"Nur bei Shop.de\"
3. Position: Mitte
4. Transparenz: 40% (gut sichtbar)
5. In Shop einbinden
📞 Support
**Bei Problemen:**
1. README durchlesen
2. Troubleshooting checken
3. GD Library prüfen
4. PHP Error Log checken
📄 Rechtliches
Wichtig:
- ✅ Nur eigene Bilder schützen
- ✅ Oder mit Erlaubnis des Fotografen
- ⚠️ Wasserzeichen sind **kein 100% Schutz**
- ⚠️ Technisch versierte können sie entfernen
Best Practice:
1. Wasserzeichen + niedrige Auflösung (Web)
2. Originale nur nach Kauf/Bezahlung
3. Wasserzeichen über wichtige Bildbereiche
4. Kombination: Text + Logo
🎯 Best Practices
User Experience:
1. **Einfacher Upload** (Drag & Drop)
2. **Live-Vorschau** (TODO)
3. **Schnelle Verarbeitung**
4. **Klare Download-Buttons**
Code Quality:
1. **Alle Formate unterstützt**
2. **Error-Handling**
3. **Memory-Limits beachten**
4. **Sauberer Code**
📈 Format-Support-Matrix
| Format | PHP GD | ImageMagick | Empfohlen für |
|--|--|-||
| JPG | ✅ | ✅ | Fotos |
| PNG | ✅ | ✅ | Grafiken |
| WEBP | ✅* | ✅ | Web |
| GIF | ✅ | ✅ | Animationen** |
| BMP | ✅ | ✅ | Legacy |
\* Benötigt libwebp
** Nur erstes Frame wird verarbeitet
📝 Changelog
Version 2.0 (Aktuell)
**Features:**
- ✅ Komplett neu in PHP 8.4
- ✅ Alle Formate: JPG, PNG, WEBP, GIF, BMP
- ✅ Text & Logo-Wasserzeichen
- ✅ Batch-Processing
- ✅ Anpassbare Positionen
- ✅ Transparenz-Kontrolle
- ✅ Format-Konvertierung
- ✅ Modernes Design (Cyan/Blue)
- ✅ Mobile-optimiert
**Technisch:**
- ✅ GD Library
- ✅ TrueType Font Support
- ✅ Alpha-Channel Handling
- ✅ Memory-effizient
🏆 Credits
**Design inspiriert von:**
- Watermarkly
- uMark
- iWatermark
**Powered by:**
- PHP GD Library
- TrueType Fonts
📄 Lizenz
Proprietär - Alle Rechte vorbehalten
🎉 Viel Erfolg mit Bildschutz!
**Version:** 2.0
**Stand:** Januar 2026
**Sprache:** Deutsch 🇩🇪
**PRODUKTIONSBEREIT!** 🚀
🆘 Quick-Start
bash
1. Dateien hochladen
2. Browser öffnen
3. Bild hochladen
4. Einstellungen vornehmen
5. Verarbeiten
6. Herunterladen!
Für bessere Qualität:
- arial.ttf herunterladen
- Im Root ablegen
- Fertig!
**Text-Wasserzeichen:** Schnell & einfach
**Logo-Wasserzeichen:** Professionell
**Batch-Processing:** Effizient! 💪