2012-01-06 12 views
6

88x31 boyutunda bir resim var ve gerçek görüntüyü yeniden boyutlandırmadan 100x100 yapmak istiyor ancak yalnızca tuvalini/çerçevesini, belki de ortasına kopyalayarak 100x100 boyutunda yeni boş beyaz görüntü. Herhangi bir fikir nasıl yapılır?PHP GD - görüntü çerçevesini/tuvalini yeniden boyutlandırma ancak gerçek görüntüyü değil

+0

mevcut kodu kullanın tekerleği yeniden icat dönmek etmeyin: https://github.com/avalanche123/Imagine ama eğer ısrar, zaten cevaplanmış SO benzer soru bolluk vardır. –

+1

olası bir kopyası [başka görüntü içeren GD ile bir resim oluşturma] (http://stackoverflow.com/questions/2933170/create-a-picture-with-gd-containing-other-images) –

+0

Imagine ismiyle sorun PHP'mizin şu anda desteklemediği destek ve henüz henüz yükseltme yapmak istemiyorum. – Marcin

cevap

7

doğru yöntem yeni bir imaj oluşturmak ve sonra (başlangıç ​​görüntü JPEG ve daha küçük 100x100 olduğunu varsayarak) bunun ortasında içine eski resmi kopyalamak için geçerli:

$oldimage = imagecreatefromjpeg($filename); 
$oldw = imagesx($oldimage); 
$oldh = imagesy($oldimage); 

$newimage = imagecreatetruecolor(100, 100); // Creates a black image 

// Fill it with white (optional) 
$white = imagecolorallocate($newimage, 255, 255, 255); 
imagefill($newimage, 0, 0, $white); 

imagecopy($newimage, $oldimage, (100-$oldw)/2, (100-$oldh)/2, 0, 0, $old, $oldh); 
İlgili konular