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:
original
verkleinert:
verkleinert
schwarz/weiß
nach sw konvertiert
schwarz/weiß + klein
nach sw konvertiert und verkleinert

Foto: www.pixelquelle.de

Das Tool ist in PHP programmiert und nutzt die Grafikfunktionen der Open Source Grafiklibrary GDLIB.

PHP Script:

PHP:
  1. $time=time(); // zeitabhängig für Dateinamen
  2. $filename = $time .".". $extension; // Dateiname + extension = .jpg oder .png
  3.  
  4. $size=@getimagesize($temp); // $temp enthällt Pfad zu Bild
  5.  
  6. $breite=$size[0]; // Breite des ursprünglichen Bildes ermitteln
  7. $hoehe=$size[1]; // Höhe des ürsprünglichen Bildes ermitteln
  8.  
  9.  
  10. if ($bildbreite != "") { $neueBreite=$bildbreite; $neueHoehe=($neueBreite/$breite)*$hoehe; } neue Breite und Höhe berechnen
  11. if ($bildbreite == "") { $neueBreite=$breite; $neueHoehe=$hoehe} // alte Breite und Höhe wenn keine Angabe
  12.  
  13. if ($extension=="jpg") {
  14. $altesBild=@ImageCreateFromJPEG($temp); // Bild von jpg erzeugen
  15. }
  16. if ($extension=="png") {
  17. $altesBild=@ImageCreateFromPNG($temp); // Bild von png erzeugen
  18. }
  19.  
  20. if ($pic_gamma != "" and $pic_gamma != "10") {
  21. @imagegammacorrect($altesBild,10 ,$pic_gamma); // Gamma Wert ändern
  22. }
  23.  
  24. $neuesBild=@ImageCreatetruecolor($neueBreite,$neueHoehe)
  25. @ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); // Bild skalieren
  26.    
  27. $filepath=$path ."temp/$filename"; // Pfad zu einem Verzeichnis mit Schreibrechten
  28.  
  29. if ($pic_color=="0") {                   // Foto nach schwarz/weiß konvertieren
  30. $x = imagesx($neuesBild);
  31. $y = imagesy($neuesBild);
  32. for($i=0; $i<$y; $i++) {
  33. for($j=0; $j<$x; $j++) {
  34. $pos = @imagecolorat($neuesBild, $j, $i);
  35. $f = @imagecolorsforindex($neuesBild, $pos);
  36. $gst = $f["red"]*0.15 + $f["green"]*0.5 + $f["blue"]*0.35;
  37. $farbe = @imagecolorresolve($neuesBild, $gst, $gst, $gst);
  38. @imagesetpixel($neuesBild, $j, $i, $farbe);
  39. }
  40. }
  41.  
  42.  
  43. @ImageJPEG($neuesBild,$filepath,70);   // neues Bild schreiben
  44. $filegroesse=filesize($filepath)// Größe des neuen Bildes berechnen

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

RSS Feed für Kommentare zu diesem Beitrag. TrackBack URI

1 Kommentar bisher »

  1. 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:
    Hi, das wäre eigentlich mal ne Idee. :-) Muß ich mich mal eben mit WP Plugins beschäftigen. Ich schreib dir ne Mail wenn ich sowas fertig hab…

    PS:
    Existiert bei dir schon irgendwo die Möglichkeit Bilder hochzuladen? Wenn ja, wo muss das eingebaut werden?

Komentar RSS · TrackBack URI

Hinterlasse einen Kommentar

Name: (erforderlich)

eMail: (erforderlich)

Webseite:

Kommentar:

authimage