Bilder Thumbnails mit immer gleicher Bildgröße

N

nox

Guest
Hallo liebe Community!

Ich bin noch ganz Frisch in dieser Commuity also hoffe ich mal das ich alles richtig mache
smile.gif



Direkt zu meinem Problem:
Ich möchte mit php Bilder verkleiner (Thumbnails erstellen) soweit noch kein wirkliches Problem. Allerdings ist es wichtig das das erstellte Thumbnail immer die gleiche größe hat, also egal ob ein Bild mit richtigen oder "falschen" Proportionen skaliert werden soll.


Denkansatz
Ich wollte ein leeres Bild erstellen und daruf das zu skalierende Bild mittig (Y-/X-Achse) skalliert "drauf legen".


http://img158.imageshack.us/img158/1664/vorschauvi7.th.jpg


Jedoch habe noch keine Idee wie ich es umsetzen könnte. Da ich aber auch nicht Zwangsläufig das Rad neu erfinden muss bin ich auch für evtl. Frameworks oder fertige Scripte offen!

Ich hoffe ich konnte verständlich machen was ich erreichen möchte.

Gruß und danke nox

P.s. Photoshop ist sicherlich nicht meine Stärke!
wink.gif
 
Herzlich willkommen,

QUOTE Allerdings ist es wichtig das das erstellte Thumbnail immer die gleiche größe hat, also egal ob ein Bild mit richtigen oder "falschen" Proportionen skaliert werden soll.


Schau mal in der Suche.

QUOTE Da ich aber auch nicht Zwangsläufig das Rad neu erfinden muss...

Da sind schon mal ein paar Threads mit dem gleichen Prob gewesen.
Irgendwo habe ich mal ne Funktion dazu gepostet.
Wenn du nichts findest schreib nochmal einen Post oder schau bei php.net. Die Skalierungen des dortigen thumbgenerators sind aber nicht 100% wasserfest.


QUOTE Ich wollte ein leeres Bild erstellen und darauf das zu skalierende Bild mittig (Y-/X-Achse) skalliert "drauf legen".


Nimm doch einen Container (td, div) und setz das Hintergrundbild per css
oder auch position:absolute und beide Bilder übereinander legen und schau dass sie nicht aus dem Container fliegen.

Vie Spass
 
meistens gestaltet sich die suche in so grossen foren
als sehr schwierig - nie findet man was passendes
(weshalb ich die meisten wiederkehrenden fragen gut verstehen)

okay hier mal mein php ansatz

CODE
//thumpnail grösse
$x = 100;
$y = 140;

//grösse der bilderquelle ermitteln
$qxy = getimagesize($quelle);
$qxy = explode("\"",$qxy[3]);

//bildquelle auf thumbnail zentrieren
//eventuell vorher noch skalierungsfunktion integrieren - ist jetzt nicht mit bei
$spx = ($x/2) - ceil($qxy[1]/2);
$spy = ($y/2) - ceil($qxy[3]/2);

//thumbnail erstellen und hintergrundfarbe festlegen
$image_a = imagecreate($x,$y);
$farbe_body = imagecolorallocate($image_a,0,0,0);

//bildquelle und thumbnail zu einem bild machen
$image_b = imagecreatefromjpeg($quelle);
ImageCopy($image_a,$image_b,$spx,$spy,0,0,$qxy[1],$qxy[3]);

//erstelltes thumbnail speichern
imagejpeg($image_a,$ziel,100);



was die einzelnen befehle genau machen und wie die parameter
eingesetzt werden findet man natürlich auf http://www.php.net/

gruss prof.
 
Schön mit dem Hintergrund im gleichen Bild,

hier ist nochmal die Skalierung:
CODE
$size = getimagesize($image);
$maxx=120; // maximum width
$maxy=150; // maximum height
if ($size[0]>$size[1]) {$sizemin[0]=$maxx;$sizemin[1]=$maxx/$size[0]*$size[1];
if ($sizemin[1]>$maxy){$sizemin[0]=$maxy/$sizemin[1]*$maxx;$sizemin[1]=$maxy;}}
elseif ($size[1]>$size[0]) {$sizemin[1]=$maxy;$sizemin[0]=$maxy/$size[1]*$size[0];
if ($sizemin[0]>$maxx){$sizemin[1]=$maxx/$sizemin[0]*$maxy;$sizemin[0]=$maxx;}}
elseif($size[1]=$size[0]){
if($maxy>$maxx){$maxy=$maxx;}
$sizemin[0]=$maxy;$sizemin[1]=$maxy;}
$im=imagecreatefromjpeg($image);
$normal = imagecreatetruecolor($sizemin[0], $sizemin[1]); // new image
ImageCopyResampled($normal, $im, 0, 0, 0, 0, $sizemin[0], $sizemin[1], $size[0], $size[1]);
ImageDestroy($im);
ImageJPEG($normal,$image,100)



Die beiden Scripts zusammenzubasteln hab ich jetzt aber keine Lust.

Gruss Tümmel
 
Zurück
Oben