Bilder proportional verkleinern

winetoo

Grünschnabel
hi, bin hier neu und hätte gleich eine frage an euch.

ich würde gerne bilder proportional verkleinern. ich habe mich schon etwas bei google schlau gemacht und auch viele möglichkeiten gefunden mit php bilder zu verkleinern. jedoch ist das ergebnis alles andere als gut. die bilder sind im format png und ich finde selbst mspaint hat eine bessere qualität beim verkleinern als php/gd library.

vielleicht mache ich etwas falsch?

ich frage mich nun womit ich am besten die bilder (online) verkleinern kann. vielleicht mit java? wichtig ist mir das ergebnis.

freue mich schon auf tipps von euch.
 
Zeig doch mal deinen Code, hellsehen kann hier auch keiner ;-)

An und für sich ist die Qualität abhängig vom verwendeten Format und Ausgangsmaterial.
 
Zeig doch mal deinen Code, hellsehen kann hier auch keiner ;-)

An und für sich ist die Qualität abhängig vom verwendeten Format und Ausgangsmaterial.

Ich habe einfach einen Beispiel-Code (Beispiel #2 Resampling an image proportionally) von hier genommen: http://php.net/manual/de/function.imagecopyresampled.php

Ich musste nur das Format von JPEG in PNG ändern. Jedoch ist die Qualität sehr schlecht.

Die Bilder von mir sind jedoch in sehr guter Qualität. Wenn ich die Bilder mit PS verkleinere, ist das Ergebnis sehr gut. Ist lar, das PHP nicht mit PS mithalten kann. Allerdings habe ich eben gelesen das "ImageJ" sehr gut Bilder verkleinern können soll. Ich weiss leider nicht wie ich das Online einsetzen könnte.

phMagick soll eher was zum drehen usw. sein, habe ich gelesen. Kann phMagick bessere Ergebnisse beim verkleinern von Bildern liefern als GD?
 
Wie hast du imagepng() aufgerufen? Bitte bedenke, das die Quality bei imagepng() abnimmt, je hoher der Quality-Wert ist, da er die Kompression bestimmt:

PHP Manual hat gesagt.:
quality

Kompressionsstufe: Von 0 (keine Kompression) bis 9.

0 wäre damit die beste Qualität aber auch keine Kompression.
 
Ich denke, du nimmst PNG? Vielleicht zeigst du doch mal den kompletten Code. Grundsätzlich solltest du auch das Manual zu diesem Themen mal lesen:

- imagepng()
- imagejpeg()

Ich würde es so aufrufen:

PHP:
imagepng($image, null, 2); // Hier ist 2 der Kompressionsgrad, je höher die Kompression, desto schlechter die Qualität

Wenn es JPG sein soll:
PHP:
imagejpeg($image, null, 90); // Hier ist 90 der Prozentsatz der Qualität des Originals, je höher, desto bessere Qualität
 
Das wusste ich ehrlich gesagt nicht. Bei JPEG ja aber das man die Qualität auch für PNG einstellen kann, war mir nicht bekannt.

Ich werde es mal so ausprobieren:
PHP:
imagepng($image, null, 0);

Was hälst du denn von ImageMagick? Ich möchte Bilder die ca. folgene Abmessung haben (1200x 250) in verschiedene Größen verkleinern. Die Original Bilder sind in sehr guter Qalität vorhanden.
 
Was ist denn der Unterschied von

PHP:
imagepng($image);

und

PHP:
imagepng($image, null, 0);

?

Was macht GD wenn man das "null" und keine Kompression eingibt?
 
Ich habe noch keine Bewertung zwischen GD und Imagick durchgeführt, daher ist meine Meinung nicht von Relevanz. Ich nehme GD, weil es bei allen PHP-Installationen dabei ist. Imagick muss man nach-installieren, daher ist es eine Hürde für mich.

Die Standard-Werte von imagepng() habe ich noch nicht im Sourcecode gefunden. Wenn man nichts angibt, wird PHP einen Default-Wert dafür vergeben. Wäre möglich, das standardmäßig eine höhere Kompressionsrate verwendet wird. Das findet man ja durch ausprobieren raus.

null bedeutet in diesem Falle, das man das Bild nicht in eine Datei speichern will, statt dessen wird der Ausgabe-Strom an den Browser gesendet.

Bei imagepng stellst du auch nicht die Qualität sondern die Kompression ein. Das es bei hoher Kompression automatisch eine schlechtere Qualität gibt, liegt in der Natur der Sache. Dafür wird der Datenstrom dann halt kleiner (und hat damit weniger Informationen).
 
Zurück