Fotos/Grafiken konvertieren und skalieren
Hier findet ihr ein kleines Tool, um Fotos von eurer Festplatte oder aus dem Internet ein wenig handlicher zu machen.
Du kannst Bilder auf eine beliebige Größe skalieren, Farbfotos nach schwarz/weiß konvertieren oder den Gamma-Wert der Bilder ändern. Vielleicht ganz nützlich wenn man gerade kein Grafikprogramm zur Hand hat und man z.B. kurz ein kleines Vorschaubild für die Bildergalerie oder eine kleine Abbildung fürs eigene Weblog erzeugen möchte.
Zum Tool: Foto Konverter
Kleines Beispiel:
original:
|
verkleinert:
|
|
schwarz/weiß
|
schwarz/weiß + klein
|
Foto: www.pixelquelle.de
Das Tool ist in PHP programmiert und nutzt die Grafikfunktionen der Open Source Grafiklibrary GDLIB.
PHP Script:
-
$filename = $time .".". $extension; // Dateiname + extension = .jpg oder .png
-
-
-
$breite=$size[0]; // Breite des ursprünglichen Bildes ermitteln
-
$hoehe=$size[1]; // Höhe des ürsprünglichen Bildes ermitteln
-
-
-
if ($bildbreite != "") { $neueBreite=$bildbreite; $neueHoehe=($neueBreite/$breite)*$hoehe; } neue Breite und Höhe berechnen
-
if ($bildbreite == "") { $neueBreite=$breite; $neueHoehe=$hoehe; } // alte Breite und Höhe wenn keine Angabe
-
-
if ($extension=="jpg") {
-
$altesBild=@ImageCreateFromJPEG($temp); // Bild von jpg erzeugen
-
}
-
if ($extension=="png") {
-
$altesBild=@ImageCreateFromPNG($temp); // Bild von png erzeugen
-
}
-
-
if ($pic_gamma != "" and $pic_gamma != "10") {
-
@imagegammacorrect($altesBild,10 ,$pic_gamma); // Gamma Wert ändern
-
}
-
-
$neuesBild=@ImageCreatetruecolor($neueBreite,$neueHoehe);
-
@ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); // Bild skalieren
-
-
$filepath=$path ."temp/$filename"; // Pfad zu einem Verzeichnis mit Schreibrechten
-
-
if ($pic_color=="0") { // Foto nach schwarz/weiß konvertieren
-
$x = imagesx($neuesBild);
-
$y = imagesy($neuesBild);
-
for($i=0; $i<$y; $i++) {
-
for($j=0; $j<$x; $j++) {
-
$pos = @imagecolorat($neuesBild, $j, $i);
-
$f = @imagecolorsforindex($neuesBild, $pos);
-
$gst = $f["red"]*0.15 + $f["green"]*0.5 + $f["blue"]*0.35;
-
$farbe = @imagecolorresolve($neuesBild, $gst, $gst, $gst);
-
@imagesetpixel($neuesBild, $j, $i, $farbe);
-
}
-
}
-
-
-
@ImageJPEG($neuesBild,$filepath,70); // neues Bild schreiben
Bei Gelegenheit schreibe und erkläre ich noch ein wenig mehr zu diesem Script. Wenn noch Wünsche oder Anregungen bestehen, so werden diese gerne umgesetzt, wenn machbar...
Tags: Weitere Artikel von Clever
























nepf sagt
am 3. September 2006 @ 12:14
coole Sache!
ich suche ja ein WP-Plugin, dass Fotos die (von meinen usern) hochgeladen werden, automatisch auf eine Breite von 400px verkleinert.
ich bin für so was zu blöd.
Aber Du kannst das doch.
Kannst Du nicht mal so ein plugin schreiben?
wäre wirklich Sahne!!!!
Kommentar des Autors:
Muß ich mich mal eben mit WP Plugins beschäftigen. Ich schreib dir ne Mail wenn ich sowas fertig hab…
Hi, das wäre eigentlich mal ne Idee.
PS:
Existiert bei dir schon irgendwo die Möglichkeit Bilder hochzuladen? Wenn ja, wo muss das eingebaut werden?