Thumbnails mit php generieren - Qualität schlecht

Ich verwende zur Bildverkleinerung (nur JPG) folgende Funktion:

**function verkleinern($bild) //Funktion zur Bildverkleinerung
{
global $Ordnername;//Globale Variable deklarieren, damit sie funzt.
global $TNHoehe;
$neueHoehe=$TNHoehe;

$PicPathIn=’…/upload/’;
$PicPathOut=’…/’.$Ordnername."/TN/";

// Bilddaten feststellen
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=intval($neueHoehe*$breite/$hoehe);
//$neueBreite=800; Ich geb lieber die Höhe vor!
//$neueHoehe=intval($hoehe*$neueBreite/$breite);

if($size[2]==1) {
echo "
GIF-Bilder werden nicht akzeptiert!";
}

if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=ImageCreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut".„TN“."$bild");
}

if($size[2]==3) {
echo "
PNG-Bilder werden nicht akzeptiert!";
}
}**

Aber das Ergebnis ist mir Qualitativ zu schlecht. Die
Bilder sollten ganz ohne Qualitätsverlust verkleinert werden.

Geht das irgendwie besser?

Moien

Die Lösung steht eine Frage weiter unten.

cu

Servus!

Hab jetzt noch das ‚,100‘ an ImageJPEG angefügt. Bringt auch nix.

Ich lasse die Thumbnails ja ziemlich klein erstellen: Höhe=135px
Habe grade herausgefunden das es bei ein wenig größeren Einstellungen
scharf ist. Keine Ahnung warum.
Ich werd sie jetzt ein wenig größer erstellen lassen, und sie dann
beim Aufruf auf der Seite einfach per HTML mit der Höhe 135px anzeigen lassen. Das dürfte funzn.

Danke,
Mfg. marco

Ich werd sie jetzt ein wenig größer erstellen lassen, und sie
dann
beim Aufruf auf der Seite einfach per HTML mit der Höhe 135px
anzeigen lassen. Das dürfte funzn.

wenn das browser skalierte besser aussieht, als das bei richtiger groesse gerenderte ist irgendetwas schrecklich schief gelaufen - magst du uns einen link nennen?

Servus!

Danke für die Hilfe.
Die Seite ist noch nicht online. (wird eine komplett neue Homepage).
Aber ich hab jetzt zum test eine Seite mit Bildern online gestellt:
http://www.feuerwehr-parkstetten.de/Bilderfrage/frag…

Aber mir is dabei noch was sehr interessantes aufgefallen:
Ich erstelle die Homepage am Laptop. Dort hab ich Mozilla und erkenne
deutliche Unterschiede (z.B. an der Schrift im 1. Beispiel) an den Bildern.
Jetzt hab ich die frage.htm mal am PC (mit IE und Mozilla)
angeschaut und es ist fast gar kein Unterschied mehr zu erkennen.
Dh. das ganze hängt irgendwie mit meinem scheiß-laptop zusammen
denk ich. Dort hab ich 1280x800 als Auflösung. Am PC hab
ich 1280x1024.

Erkennst du Qualitätsunterschiede??

Vielen Dank,
Mfg.
Marco

Aber mir is dabei noch was sehr interessantes aufgefallen:
Ich erstelle die Homepage am Laptop. Dort hab ich Mozilla und
erkenne
deutliche Unterschiede (z.B. an der Schrift im 1. Beispiel) an
den Bildern.

genau, dort sind heftige kompressionsartefakte.

Erkennst du Qualitätsunterschiede??

in dem im vom browser skalierten sind halt die linien kaputt, wie die browser das so tun.
wenn du am pc keinen utnercshied siehst, ist dein monitor extrem unscharf :wink:

a) beim verkleinern wird es unscharf, das geht nciht anders. die schaerfe durch das skalieren im browser wieder herzu stellen ist a schlecht, weil es z.b. leicht schraege linien kaputt macht, und zum anderen natuerlich auch den traffix abnorm vergroessert.

b) hast du dich wohl beim rumexperimentieren vertan, weil wenn ich das 360er hier mit imagejpeg(…,100) also 100% qualität sichere, dann ist meine datei 22kb gross, deine sind aber nur ca 5kb gross

in dem im vom browser skalierten sind halt die linien kaputt,
wie die browser das so tun.
wenn du am pc keinen utnercshied siehst, ist dein monitor
extrem unscharf :wink:

a) beim verkleinern wird es unscharf, das geht nciht anders.

a):die schaerfe durch das skalieren im browser wieder herzu

stellen ist a schlecht, weil es z.b. leicht schraege linien
kaputt macht, und zum anderen natuerlich auch den traffix
abnorm vergroessert.

b) hast du dich wohl beim rumexperimentieren vertan, weil wenn
ich das 360er hier mit imagejpeg(…,100) also 100% qualität
sichere, dann ist meine datei 22kb gross, deine sind aber nur
ca 5kb gross

zu a) Ja. ich habs jetzt nochmal probiert. Ich erkenne im Direkten vgl.
immer noch eine geringe Unschärfe. Aber ich weiß nicht warum ich vorher noch
ned bemerkt hab dass es mit dem (…,100) doch wirklich besser geworden ist. Ich hab irgendeinen Misst gebaut.

zu b) Ja, bei meinem jetztigen Versuch hat die Datei auch 22kb.
Obwohl ich nur mehr die Bildhöhe in der Function geändert hab.
Keine Ahnung wo ich mich da wieder mal blöd angestellt hab…

Fazit: Das (…,100) hat schon seine Wirkung gezeigt. Und in
Verbindung mit den besseren Funktionen ImageCreatetruecolor und
imagecopyresampled ist sie voll ok.

Naja. Viel Wind um so gut wie gar nix.
So wie die Function jetzt ist, ist sie ok und ist auf jeden
Fall weiter-zu-empfehlen.

Also: Problem gelöst. Wahrscheinliche Ursache: Dumm angestellt.
Vielen Dank!
Gruß marco