2011-03-09 128 views
1

如何在GD中創建圖像/縮略圖的固定大小(高度/寬度)?固定大小的縮略圖像twitpic.com

我知道有很多PHP腳本,但只是縮放它,高度/寬度將始終是不同的大小。

我喜歡像twitpic.com和Facebook縮略圖

+1

可能重複[?ImageMagick的或GD Libary的圖像大小調整和創建縮略圖(http://stackoverflow.com/questions/4277823/imagemagick-or- gd-libary-for-image-resizing-and-thumbnail-creation) – seriousdev 2011-03-09 23:35:21

+0

[將全景圖像調整爲固定大小]的可能重複(http://stackoverflow.com/questions/5157998/resize-panoramic-image-to-fixed - 大小) – CanSpice 2011-03-09 23:35:40

回答

0

你需要使用getimagesize

得到高度和圖像的寬度,然後用imagecopyresized

調整它的其餘部分是所有使用GD完成與加載和保存圖像相同的基本工作。

這裏有一個基本的例子,如果你想考慮高度/寬度比,那麼你必須做一些額外的數學。

<?php 
header("Content-type: image/png"); 

$size = getimagesize($filename); 
$image  = imagecreatefrompng($filename); 
$thumbnail = imagecreate(100,100); 
imagecopyresized($thumbnail, $image, 0, 0, 0, 0, 100, 100, $size[0], $size[1]); 
imagepng($thumbnail); 
imagedestroy($image); 
imagedestroy($thumbnail); 
+0

謝謝,但我知道這一點。當它調整到固定的高度和寬度時,圖像看起來很糟糕。需要一種方法來裁剪特定區域,然後調整其大小。就像twitpic.com – user622378 2011-03-09 23:54:04

+0

如果你想它看起來成比例,那麼你必須從圖像的一部分具有相同的高/寬比例複製。例如要從200x300圖像製作100x100的縮略圖,您需要獲取200x200的圖像。你是這個意思嗎? – Jacob 2011-03-10 01:41:19

0

這很容易與Thumbnailer

$th=new Thumbnailer("your-photo.jpg"); 
$th->thumbSquare(100)->save("thumb.jpg");