Verständnisfrage: GIF-Dateien in JPG umwandeln - möglich ?
Didi72
- php
Hallo,
ich habe ein kleines Problem: Ist es möglich, da ja die GD (2.x) ja leider nicht mehr das GIF-Format unterstützt, eine GIF-Datei zu öffnen (?) und dann als JPG oder PNG über PHP zu speichern ?
Sinn der Übung wäre, trotz der fehlenden GIF-Unterstützung in den neueren GDs Thumbnails aus GIFs erstellen zu können.
Oder gibt es vielleicht doch noch einen anderen Weg ?
Gruss
Didi72
Hello,
ich habe ein kleines Problem: Ist es möglich, da ja die GD (2.x) ja leider nicht mehr das GIF-Format unterstützt, eine GIF-Datei zu öffnen (?) und dann als JPG oder PNG über PHP zu speichern ?
Sinn der Übung wäre, trotz der fehlenden GIF-Unterstützung in den neueren GDs Thumbnails aus GIFs erstellen zu können.
Oder gibt es vielleicht doch noch einen anderen Weg ?
Di in PHP 5.x enthaltene Librairy unterstützt wieder GIF-Erzeugung und vieles mehr...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
leider steht mir aber nur die PHP Version 4.3.3 zur Verfügung, das heisst ich such mit dieser Config eine Lösung...
Gruss
Didi72
Hallo und Danke !
Der Tip von Wahsaga (an dieser Stelle nochmals vielen Dank !) war
absolut goldrichtig, d.h. mit dieser Konstallation (GIF-Datei
einlesen und als PNG-Thumb speichern) ist die Realisation auch
bei GDs über 1.6x trotz fehlender GIF-Unterstützung - diese fehlt
anscheinend nur teilweise, d.h. lesen möglich - nur schreiben nicht,
möglich. Bevor dieser Thread noch weiter "ausufert" (siehe Gunnar) -
natürlich werde ich nicht die Thumbs dynamisch bei jedem
Seitenaufruf neu erstellen, sondern direkt bei dem Upload der
Bilddatei. Da diese aber nicht von meiner Person sondern von Dritten
hochgeladen werden, wäre der "lokale" Weg nicht umsetzbar.
Natürlich hat Tom übrigens auch recht, das bei kleinen Sites mit
nicht massenhaften Zugriffen eine Thumbnail-Erstellung "on-the-fly"
durchaus Sinn machen kann - auch die Serverbelastung bleibt dabei
im Rahmen.
Für alle Interessierten will ich den Code nicht verheimlichen:
[code=php]
<?php
$dateiname = "test.gif";
$bildpfad = "";
$bildpfad_small = "test/";
$function_image_create = "ImageCreateFromGif";
$function_image_new = "ImagePNG";
$size = getimagesize("$bildpfad"."$dateiname");
$breite = $size[0];
$hoehe = $size[1];
if ($breite > $hoehe)
{
if ($breite >= 126) $neueBreite01 = 125;
if ($breite <= 125) $neueBreite01 = $breite;
$neueHoehe01 = intval($hoehe*$neueBreite01/$breite);
}
if ($breite < $hoehe)
{
if ($hoehe >= 126) $neueHoehe01 = 125;
if ($hoehe <= 125) $neueHoehe01 = $hoehe;
$neueBreite01 = intval($breite*$neueHoehe01/$hoehe);
}
if ($breite == $hoehe)
{
if ($breite >= 126) $neueBreite01 = 125;
if ($breite <= 125) $neueBreite01 = $breite;
$neueHoehe01 = intval($hoehe*$neueBreite01/$breite);
}
$altesBild=$function_image_create("$bildpfad"."$dateiname");
$neuesBild01=ImageCreateTrueColor($neueBreite01,$neueHoehe01);
ImageCopyResized($neuesBild01,$altesBild,0,0,0,0,$neueBreite01, $neueHoehe01,$breite,$hoehe);
$function_image_new($neuesBild01,"$bildpfad_small"."name_des_thumbs.png");
?>
[/code]
So, nochmals vielen Dank !
Gruss
Didi72
hi,
Ist es möglich, da ja die GD (2.x) ja leider nicht mehr das GIF-Format unterstützt, eine GIF-Datei zu öffnen (?) und dann als JPG oder PNG über PHP zu speichern ?
Sinn der Übung wäre, trotz der fehlenden GIF-Unterstützung in den neueren GDs Thumbnails aus GIFs erstellen zu können.
je nach konfiguration kann die GDlib für gif manchmal auch nur lese-unterstützung bieten.
d.h. du könntest mit imagecreatefromgif() ein gif einlesen, bearbeiten und als jpg oder png wieder ausgeben (png wäre vielleicht eher geeignet).
schau doch mal nach, ob das bei deiner version der fall ist - phpinfo() gibt auskunft.
gruß,
wahsaga
Didi72,
Sinn der Übung wäre, trotz der fehlenden GIF-Unterstützung in den neueren GDs Thumbnails aus GIFs erstellen zu können.
Nein, die Übung hat IMHO keinen Sinn.
Du willst bei jeder Anfrage dynamisch durch den Server die Thumbnails neu erstellen lassen? Wenn dabei mal der Leser deiner Seite beim Warten nicht einschläft …
Der bessere Weg ist, die Thumbnails mit dem Grafikprogramm deiner Wahl zu erstellen und auf dem Server abzulegen.
Gunnar
Hello Gunnar,
Du willst bei jeder Anfrage dynamisch durch den Server die Thumbnails neu erstellen lassen? Wenn dabei mal der Leser deiner Seite beim Warten nicht einschläft …
Es gibt inzwischen schon schnellere Rechner als 486DX2 mit 64MB RAM, nur für den Fall, dass Du das übersehen hast.
Selbstverständlich sollte man redundante Operationen vermeiden und das Thumb nur beim ersten Zugriff darauf berechnen lassen. Aber warum nicht automatisch auf dem Server? Wenn das Orioginalbild nicht gerade 16MPixel hat...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom