2010-12-23 13 views
1

Ich exportiere einige Bilder aus dem Flash und dann die Größe in php. Ich verwende die GD-Bibliothek, um dies zu tun. Allerdings habe ich Schwierigkeiten, die richtige Größe zu finden ... einige sind Landschaft, manche sind Portraits und ich habe sogar divs, in die sie eingefügt werden müssen.PHP GD Bibliothek, weißen Bereich um ein Bild setzen

Also, wenn ich sie auf eine bestimmte Höhe Größe gibt es einige, die (zum Beispiel) 150px x 30px sind und einige, die 30px x 150px sind. Das Problem ist mit der vertikalen Ausrichtung in der CSS.

Ich denke, die Lösung besteht darin, nur Leerräume um die Bilder zu legen, so dass sie alle die gleiche Breite und Höhe haben, aber das Bild in der Mitte vertikal und horizontal zentriert ist.

Was ist der beste Weg, dies mit der GD-Bibliothek zu tun?

+0

Was hast du bisher gemacht? :) – Trufa

+0

Ich habe eigentlich mit ImageMagick endete. Es hatte eine createThumbnail-Funktion, die all das erleichterte. – pfunc

Antwort

0

Hier ist ein Link zu einer Funktion, die ich geschrieben habe, die Ihnen helfen wird, Größe jedes beliebigen Bildes in beliebiger Größe zu ändern. Mit der Funktion können Sie auch Ihr Bild zuschneiden oder mit einem Letterbox-Bild versehen, um es an das gewünschte Seitenverhältnis anzupassen.

https://www.spotlesswebdesign.com/blog.php?id=1

Wenn das hilft, wählen Sie bitte das Häkchen neben dieser Antwort. Vielen Dank!

1

In diesem Fall erstellen Sie einfach ein 150x150 Bild, füllen Sie es mit Weiß, und fügen Sie dann Ihr Bild an der entsprechenden Stelle auf diesem neuen Bild.

$src = imagecreatefromjpeg(...); // your flash exported image 
$dst = imagecreatetruecolor(150,150); // new blank 150x150 image 
imagefill($dst, 0, 0, 0xFFFFFF); // flood fill with white 

$new_x = ... 
$new_y = ... // figure out resizing parameters for the $src image 

imagecopyresampled($dst, $src, ...); 

imagejpeg($dst, 'resized.jpg'); 

Genaue Details zu dem copyresampled Parameter here.

0

einen Blick nehmen an diesem stackoverflow question Sie die Dimensionen des neuen Bildes müssen, ist, Ihre Dimensionen des Originalbilds und die Formel im Grunde

$startx=($newx_size/2)-($oldx_size/2),  
$starty=($newy_size/2)-($oldy_size/2) 

Start x und y sind die Mittelpunkte Ihrer neues Bild (newX und newY dividiert durch 2) minus der Höhe/Breite des skalierten Bildes ($ oldx und oldy jeweils durch zwei geteilt). Größe zuerst ändern, ihre neuen Dimensionen erhalten und sie entsprechend platzieren.

Verwandte Themen