2016-05-26 10 views
1

Wir verwenden ein CMS mit integriertem WideImage und keinen Spielraum, dies zu ändern, aber wir sind auf eine Situation gestoßen, in der wir 300x300 Bilder produzieren müssen.WideImage - Canvas mit transparentem Hintergrund

Allerdings die Bilder, die mit ca. 100x100 im JPG-und PNG-Format mit verschiedenen Ebenen der Transparenz hochgeladen werden.

Ich versuche, eine 300x300-Leinwand zu erstellen und das 100x100-Bild darin zu platzieren - allerdings möchte ich, dass sowohl die Leinwand transparent bleibt als auch das Bild oben, um die Transparenz zu erhalten.

Ich habe

$image = WideImage::loadFromFile($this->local_path); 

$canvas = WideImage::createTrueColorImage(300, 300); 
$canvas_bg = $canvas->allocateColor(255, 255, 255); 
$canvas->fill(0, 0, $canvas_bg); 

$resized_image = $canvas->merge($image); 

dies jedoch offensichtlich kommt noch hinzu, die einen weißen Hintergrund auf die Leinwand, kann ich nicht von ihrer Dokumentation herauszufinden, wie es transparent zu machen.

Dank

Antwort

0

Wie wäre: sowie seine Breite und Höhe

$image = WideImage::loadFromFile($this->local_path); 
$resized_image = $image->resizeCanvas(300, 300, 0, 0); 

Sie die X- und Y-Position des Bildes innerhalb der neuen Leinwand angeben. $image->resizeCanvas(300, 300, "center", "center") funktioniert ganz gut.

+0

Dies löst nicht das Problem der mangelnden Transparenz auf der neuen Leinwand, dies erzeugt etwas wie -> http://i.imgur.com/kHp1CDq.jpg – Owen

+0

Seltsam. Es funktioniert gut für mich. –

+0

Dies ist ein Beispielbild von einem, das nicht funktioniert, vielleicht wird es für Sie nützlich sein http://s33.postimg.org/c6lfmia7j/wu9100.png – Owen