Schrift
[thread]7684[/thread]

GD::Image: schlechte Bildqualität

Leser: 3


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
MartinR
 2006-02-07 22:31
#62729 #62729
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen!

Ich erzeuge mit folgendem Code in meinem WebPack bei Hosteurope Thumbnails.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
sub ErstelleThumbnail {

my ($breite_klein,$hoehe_klein);
my $jpg_qualitaet = 90;

# Bildbreite und Höhe ermitteln
my $GrossesBild = GD::Image->new("original.jpg");
my ($breite_gross, $hoehe_gross) = $GrossesBild->getBounds();

my $Seitenverhaeltnis = $breite_gross / $hoehe_gross;

# a) Querformat oder Quadrat
if ($breite_gross >= $hoehe_gross) {
$breite_klein = 150; # maximale Breite im Querformat
$hoehe_klein  = $breite_klein / $Seitenverhaeltnis;
}

# b) Hochformat
else {
$hoehe_klein  = 150; # maximale Höhe im Hochformat 350px
$breite_klein = $hoehe_klein * $Seitenverhaeltnis;
}


my $KleinesBild = GD::Image->new($breite_klein,$hoehe_klein);
$KleinesBild->copyResized($GrossesBild,0,0,0,0,$breite_klein,$hoehe_klein,$breite_gross,$hoehe_gross);

# my $KleinesBild = GD::Image->new($breite_klein,$hoehe_klein);
# $KleinesBild->copyResampled($GrossesBild,0,0,0,0,$breite_klein,$hoehe_klein,$breite_gross,$hoehe_gross);

my $KleinesBildDatei = $KleinesBild->jpeg($jpg_qualitaet);

open (OUTFILE, ">kopie.jpg") || die;
binmode OUTFILE;
print OUTFILE $KleinesBildDatei;
close(OUTFILE) || die;

return ($breite_klein,$hoehe_klein,$breite_gross,$hoehe_gross);

}


Leider ist die Qualität der Thumbnails recht bescheiden. Ihr könnt es Euch ja mal ansehen unter www.roesl-online.de. Image::Magick läuft leider nicht. Hat einer eine Idee wie ich die Qualtiät verbessern könnte? copyResampled liefert eine Fehlermeldung. Das Origialbild ist übrigens immer das, welches auf der Website auch in Gross angezeigt wird.

cu

Martin
ptk
 2006-02-07 22:53
#62730 #62730
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=MartinR,07.02.2006, 21:31]copyResampled liefert eine Fehlermeldung.[/quote]
Wahrscheinlich ist die installierte GD.pm-Version (vielleicht auch die installierte libgd) zu alt.

Übrigens schafft es der Dillo nicht, die Thumbnails auf der Startseite anzuzeigen. Wahrscheinlich benutzt du zu viel Javascript ohne Fallbackmöglichkeiten...
GwenDragon
 2006-02-08 11:20
#62731 #62731
User since
2005-01-17
14554 Artikel
Admin1
[Homepage]
user image
1) Wieso stellst du die JPEG-Qualität nicht auf 100?
Eine so riesige Datenmenge wird doch das Vorschaubild wohl dann nicht liefern?

Ansonsten: Auch Image:Magick kann JPEG ganz schön verhunzen, je nach Inhalt.

Die JPEG-Komprimierung kann da "üble Strukturen" reinbringen.

2) Wieso erstellst du die Vorschau nicht statisch in Photoshop? Da kannst die Qualität steuern.
Das "große" JPEG musst du doch sowieso erstellen. Du lädtst bestimmt deine Bilder nicht aus der Kamera in den Webspace ;)\n\n

<!--EDIT|GwenDragon|1139390682-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

renee
 2006-02-08 11:37
#62732 #62732
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=GwenDragon,08.02.2006, 10:20][...]
2) Wieso erstellst du die Vorschau nicht statisch in Photoshop? Da kannst die Qualität steuern.
Das "große" JPEG musst du doch sowieso erstellen. Du lädtst bestimmt deine Bilder nicht aus der Kamera in den Webspace ;)[/quote]
... und das kann man auch automatisieren: http://perlseiten.renee-baecker.de/snippets.html#thumb
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-02-08 12:41
#62733 #62733
User since
2005-01-17
14554 Artikel
Admin1
[Homepage]
user image
Vorschaubilder erstellen lassen kostet sowieso Serverzeit.

Bei den großen Bilder verstehe ich, wenn GD::Image benutzt wird, um z. B. einen Copyrightvermerk anzuhängen.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

GH@NDI
 2006-02-08 13:56
#62734 #62734
User since
2003-09-21
16 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das Problem, dass Thumbnails mit GD meist bescheiden aussehen, liegt daran, dass GD aus kompatibilitätsgründen per Default Bilder mit indizierten Farben erstellt. Also mit 255 Farben. Wer jetzt aber ein TrueColor JPEG runterrechnet in ein Indiziertes, der hat daran keine Freude.

Abhilfe schafft beim erstellen eines Bildes einfach das mitgeben des 2. optionalen Parameteres ob TrueColor oder nicht verwendet werden soll. ;)

Code: (dl )
1
2
use GD;
my $img = GD::Image->newFromJpeg('file.jpg', 1);


Und schon sieht auch die verkleinerte Version besser aus.

Natürlich muss auch das neue Bild, in das man mittels CopyResized() hineinkopiert mit dem entsprechenden TrueColor Flag instanziert werden!

Mehr dazu gibts in der Doku dazu :)\n\n

<!--EDIT|GH@NDI|1139399877-->
Strat
 2006-02-08 16:09
#62735 #62735
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
es gab mal bei aelteren GDs die option, $image->TrueColor(1) oder so aehnlich zu setzen, dann hat GD mehr als 256 Farben verwendet. wie das genau heisst, sagt dir perldoc GD

achso, hat sich schon erledigt...\n\n

<!--EDIT|Strat|1139407805-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ptk
 2006-02-08 22:15
#62736 #62736
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Hey, Leute, ihr braucht nicht zu spekulieren. Es ist wirklich das Fehlen von copyResampled! copyResized benutzt einen viel zu trivialen Algorithmus, der keine guten Ergebnisse liefern kann.
ptk
 2006-02-08 22:18
#62737 #62737
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=GwenDragon,08.02.2006, 10:20]1) Wieso stellst du die JPEG-Qualität nicht auf 100?
Eine so riesige Datenmenge wird doch das Vorschaubild wohl dann nicht liefern?
[/quote]
100% JPEG-Qualität ist meistens Verschwendung. Es sei denn, man hat ein künstliches Bild mit großen gleichfarbigen Flächen, aber dann benutzt man besser PNG. 70% Qualität reicht vollkommen aus.
Quote

2) Wieso erstellst du die Vorschau nicht statisch in Photoshop? Da kannst die Qualität steuern.
Das "große" JPEG musst du doch sowieso erstellen. Du lädtst bestimmt deine Bilder nicht aus der Kamera in den Webspace ;)

Warum Photoshop? Heutzutage gibt's doch Gimp.
MartinR
 2006-02-08 22:42
#62738 #62738
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=GwenDragon,08.02.2006, 11:41]Vorschaubilder erstellen lassen kostet sowieso Serverzeit.[/quote]
Hi alle zusammen und erst mal danke für die Hinweise bis jetzt.

Das mit der Serverzeit ist mir ziemlich egal. Die (großen) Bilder erstelle ich - so wie sie auf meiner website zu sehen sind - natürlich zu Hause auf meinem PC. Diese werden dann einmalig hochgeladen und dann kommt eben das Skript einmal pro Bild zum Einsatz und soll mir das Thumb erstellen, welches dann auch als file auf dem Server gespeichert wird.

Warum ich die Thumbs nicht auch selbst erstelle? Weil ich einfach zu faul bin dazu ;-)

Zum jpg-Faktor: Ich habe festgestellt, dass sich die Qualität des Bildes nicht wesentlich verschlechtert wenn ich von 100 auf 90 zurückfahre - wohl aber die Datei einiges kleiner wird.

Den TrueColor-Hinweis werde ich bei nächster Gelegenheit testen.

cu
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2006-02-07 22:31.