Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP: Bilder verkleinern ohne verpixeln

8 - 25
Profi (offline)

Dabei seit 11.2006
406 Beiträge
Geschrieben am: 19.12.2007 um 23:38 Uhr
Zuletzt editiert am: 20.12.2007 um 00:07 Uhr

moin,

habe folgenden Code:

Zitat:


$Grafikdatei = "Bild.jpg";
$Ziel = "Bild_Neu.jpg";

$Bilddaten = getimagesize($Grafikdatei);

$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 300;

if($OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor(640, 480);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageJPEG($Thumbnailgrafik, $Ziel);


Nun werden die Bilder aber extrem pixelig...
Gibts irgendwelche tollen Funktionen die das besser hinbekommen?
imagemagick ist auf dem Server vorhanden, lässt sich damit arbeiten und wie?



spectre - 42
Halbprofi (offline)

Dabei seit 04.2003
181 Beiträge
Geschrieben am: 19.12.2007 um 23:52 Uhr
Zuletzt editiert am: 19.12.2007 um 23:53 Uhr

bevor ich das kommentiere, erstmal ne frage:
woher nimmst du $OriginalBreite und $OriginalHoehe ? das wird daraus nicht ersichtlich (oder hast du es vergessen?).
Nitek - 41
Champion (offline)

Dabei seit 01.2003
4129 Beiträge

Geschrieben am: 19.12.2007 um 23:54 Uhr

Du sollltest schauen, dass du das Seitenverhätlnis beibehältst, dann dürfte auch nix pixelig werden.
8 - 25
Profi (offline)

Dabei seit 11.2006
406 Beiträge
Geschrieben am: 20.12.2007 um 00:11 Uhr

habs mal ergänzt, dachte ihr kommt von alleine drauf ;)

Hab das Problem auch gelöst, es lag ganz einfach an der falschen funktion.

Statt ImageCopyResized einfach imagecopyresampled benutzen.

und dann noch die Quali hochsetzten mit ImageJPEG($Thumbnailgrafik, $Ziel, 100);

spectre - 42
Halbprofi (offline)

Dabei seit 04.2003
181 Beiträge
Geschrieben am: 20.12.2007 um 00:15 Uhr

es lässt sich zwar immer noch über die genauigkeit streiten, aber nungut :P schön wäre auch das nutzen von imagedestroy(), falls du das noch ergänzen möchtest.
falls du dir sorgen über die dateigröße machst: das beste "preis-/leistungsverhältnis" bezüglich der jpeg-qualität liegt bei um die 80.

ansonsten have fun -.-
8 - 25
Profi (offline)

Dabei seit 11.2006
406 Beiträge
Geschrieben am: 20.12.2007 um 00:25 Uhr
Zuletzt editiert am: 20.12.2007 um 00:27 Uhr

nungut, ich muss wohl ausprobieren was mir am besten gefällt (Quali)

zu imagedestroy()

Ist es denn wichtig, den Speicher weider freizugeben?
Nicht, dass mir der Server mal abschmiert, ist ja garnicht meiner sondern der von all-inkl.com ;D

ach ja, wers ausprobiern will:

http://huette-markbronn.de/index.php?m=intern

gerne dürft ihr euch anmelden,
ich hab noch keine account-löschfunktion drin, aber ich lösch euch wieder falls gewpnscht.
spectre - 42
Halbprofi (offline)

Dabei seit 04.2003
181 Beiträge
Geschrieben am: 20.12.2007 um 00:54 Uhr

naja, in deinem fall würde ich nunmal zu imagedestroy(); raten, da du offensichtlich nicht gerade die kleinsten bilder zum herumspielen nimmst. wenn man bedenkt, dass das thumbnail schon ne größe von 640x480 hat, ist die logische schlussfolgerung daraus, dass die vorlage größer ist.
die laufzeit eines php-scripts ist in der regel bekanntlich begrenzt. sollte auf grund der bearbeitungszeit das script mitten in irgendeiner aktion stoppen, bevor die image-resource wieder freigegeben worden ist (imagedestroy();), könnte es ziemlich flott zum erreichen des in php.ini eingestellten limits kommen. mal abgesehen vom schönen memory leak.
tja und so kannst du das ganze weiterspinnen: wenn du mehrere grafiken in einem script bearbeiten lässt und nie die image-resourcen wieder freigibst, wirds umso schneller voll und und und. indem du eine variable wiederbenutzt, wird der alte inhalt der resource dennoch nicht gelöscht.

naja und so weiter und so fort.
gute nacht -.-
--TR_S_92-- - 33
Anfänger (offline)

Dabei seit 11.2007
24 Beiträge
Geschrieben am: 20.12.2007 um 01:01 Uhr

YeaH
scHoOoN!!

:-D
loOoOL
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -