Thread Bild zentriert einpassen
(2 answers)
Opened by pktm at 2012-05-22 21:46
So aus der holen Hand:
Code (perl): (dl
)
1 2 sub min($$){ $_[0]<$_[1]?$_[0]:$_[1] } $img->resize(min $gui->width(),$gui->height() / min $img->width(),$img->height()); vorausgesetzt resize vergrößert wenn wert>1 und verkleinert wenn wert<1 auseinander genommen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sub min($$){ $_[0]<$_[1]?$_[0]:$_[1] } my $gh=$gui->height(); my $gw=$gui->width(); my $ih=$img->height(); my $iw=$img->width(); my $gui_min=min($gw,$gh); my $img_min=min($iw,$ih); my $scale=$gui_min/$img_min; $img->resize($scale); EDIT: Ich war zu schnell und habe nicht genau genug gelesen. :-) Das hier sollte funktionieren (ohne es getestet zu haben): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 my $gui_aspect=$gui->width/$gui->height; my $img_aspect=$img->width/$img->heigth; my $diff_aspect=$gui_aspect-$img_aspect; my $scale=1; if($diff_aspect < 0) { $scale=$gui->height/$img->height; } else { $scale=$gui->width/$img->width; } $img->scale($scale); Und nun noch alles in einer Zeile :-) Code: (dl
)
$img->scale($gui->width / $gui->height - $img->width / $img->heigth < 0? $gui->height / $img->height: $gui->width / $img->width ) Last edited: 2012-05-22 23:00:43 +0200 (CEST) |