Um Avatare zu erlauben lasse ich bei meiner Applikation das Bild hochladen (Formuar, blablabla). Dabei sind gif, jpg und png-Grafiken erlaubt.
Nach dem Hochladen erstelle ich Thumbails. Nun habe ich aber starke Probleme mit der Qualität der Thumbails... Vor allem wenn ich Fotos hochlade sieht es sowohl bei png als auch bei jpg einfach... Naja. Schrecklich aus.
// Thumb erstellen
switch($ext) {
case 'gif':
$img = ImageCreateFromGIF($user->data['avatar']);
$size = getimagesize($user->data['avatar']);
// Breite
if($size[0] < 200) {
$breite = $size[0];
}
else {
$breite = 200;
}
// Höhe
if($size[1] < 200) {
$hoehe = $size[1];
}
else {
$hoehe = 200;
}
$img2 = ImageCreate($breite, $hoehe);
ImageCopyResized($img2, $img, 0, 0, 0, 0, $breite, $hoehe, $size[0], $size[1]);
// Speichern
ImageGIF($img2, $thumbfn);
break;
case 'jpg':
$img = ImageCreateFromJPEG($user->data['avatar']);
$size = getimagesize($user->data['avatar']);
// Breite
if($size[0] < 200) {
$breite = $size[0];
}
else {
$breite = 200;
}
// Höhe
if($size[1] < 200) {
$hoehe = $size[1];
}
else {
$hoehe = 200;
}
$img2 = ImageCreate($breite, $hoehe);
ImageCopyResized($img2, $img, 0, 0, 0, 0, $breite, $hoehe, $size[0], $size[1]);
// Speichern
ImageJPEG($img2, $thumbfn);
break;
case 'png':
$img = ImageCreateFromPNG($user->data['avatar']);
$size = getimagesize($user->data['avatar']);
// Breite
if($size[0] < 200) {
$breite = $size[0];
}
else {
$breite = 200;
}
// Höhe
if($size[1] < 200) {
$hoehe = $size[1];
}
else {
$hoehe = 200;
}
$img2 = ImageCreate($breite, $hoehe);
ImageCopyResized($img2, $img, 0, 0, 0, 0, $breite, $hoehe, $size[0], $size[1]);
// Speichern
ImagePNG($img2, $thumbfn);
break;
}
Ich hänge mal so ein "Problem" an...
(avatar-1.jpg ist das Original, thumb-1.jpg das (?) Thumbnail).
// Das erste ist das Original, der zweite die verkleinerte Kopie.