Imageresizer vs. mein Bilderscript

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Imageresizer vs. mein Bilderscript

Beitrag von SKYSURFER2002 »

Hi,

ich habe für mich ein Script geschrieben, mit dem ich automatisch Bilder aus einem Verzeichnis ändere. Dies umfasst die Größe(Länge und Breite) und den Dateinamen. Leider bin ich mit der Qualität der geänderten Bilder nicht zufrieden. Hier mal der Code, der für das ändern der Größe zuständig ist:

Code: Alles auswählen

if(!@$bildspeichern = imagecreatetruecolor($endbreite,$endhoehe)) $bildspeichern = imagecreate($endbreite,$endhoehe);

      imagecopyresized($bildspeichern, $quellbild, 0, 0, 0, 0, $endbreite, $endhoehe, $orgbreite, $orghoehe);
      imagejpeg($bildspeichern, "$pfad");
      imagedestroy($bildspeichern);
Wie kann ich denn die Qualität beeinflussen? Mit dem Imageresizer ist die Qualität spürbar besser, obwohl die gleiche GD-Lib verwendet wird.
Gibt es da noch andere Befehle, welche ich nicht kenne?

Dann habe ich noch ein Problem. Das ganze wird in einer foreach-Schleife abgearbeitet. Ich habe da noch einen Zähler drinnen, der bei jedem durchlauf um 1 erhöht wird. Nun wie kann ich das machen, damit der Zähler Vornullen bekommt. Also z.B. 0001,0002,...,0010 anstelle von 1,2,3,...,10,...?!


Christian
Benutzeravatar
FatFreddy
Mitglied
Beiträge: 1937
Registriert: 25.07.2004 15:52
Kontaktdaten:

Re: Imageresizer vs. mein Bilderscript

Beitrag von FatFreddy »

SKYSURFER2002 hat geschrieben:Wie kann ich denn die Qualität beeinflussen? Mit dem Imageresizer ist die Qualität spürbar besser, obwohl die gleiche GD-Lib verwendet wird.
Gibt es da noch andere Befehle, welche ich nicht kenne?
Verwende statt imagecopyresized() lieber die Funktion imagecopyresampled(). Damit solltest Du bessere Ergebnisse erzielen.

Wenn Du dem Link folgst, hast Du auch gleich eine Übersicht über alle Graphikfunktionen in PHP.

FatFreddy
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

Vielen Dank,

das Ergebnis ist viel besser als vorher.


Nun habe ich nurnoch das problem mit dem Zähler. Gibt es da eine PHPfunktion, oder muss man sich sowas selber schreiben?


Christian
Benutzeravatar
FatFreddy
Mitglied
Beiträge: 1937
Registriert: 25.07.2004 15:52
Kontaktdaten:

Beitrag von FatFreddy »

Brauchst Du den Zähler für den Dateinamen?

Dann pack ihn in einen String:

Code: Alles auswählen

$dateinamensteil = '000' . $DeinZähler;
FatFreddy
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

FatFreddy hat geschrieben:

Code: Alles auswählen

$dateinamensteil = '000' . $DeinZähler;
Vierstellige Zahlen gehen aber auch eleganter:

Code: Alles auswählen

$dateinamensteil = str_pad($i, 4, 0, STR_PAD_LEFT);
:)
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

Ja ich benötige das für einen Dateinamen.

leider verstehe ich nicht ganz, wie das angewandt wird. Hier mal ein Codeauszug:

Code: Alles auswählen

$count = 1; // mein zähler

foreach($fileArray as $datei) {
....
$bildspeichern = imagecreatetruecolor($endbreite, $endhoehe);
$quellbild = imagecreatefromjpeg($pfadbild);
imagecopyresampled($bildspeichern, $quellbild, 0, 0, 0, 0, $endbreite, $endhoehe, $orgbreite, $orghoehe);
imagejpeg($bildspeichern, "$pfad");
imagedestroy($bildspeichern);

$count++;

}
....
Könnte das mal bitte jemand einbauen?
Ich habe zusätzlich das Problem, dass ich mehr als 9 Dateien am Stück abarbeite und somit auch 2- bzw. 3-stellige Zahlen habe. Klappt das dann auch?

Danke,

Christian
Antworten

Zurück zu „Coding & Technik“