我試圖創建使用PHP的GD庫的照片的縮略圖。PHP GD庫調整照片
這裏是我採取的步驟。
- 創建GD圖像資源。
- 獲取高度和圖像
- 的寬度爲100像素,通過適當的寬高創建一個空白GD圖像資源
- 複製資源的圖像空白GD圖像資源,節省圖像
這裏是我的代碼:
private function getExtension($filename) {
$position=strrpos($filename, '.');
$extension = strtolower(substr($filename, $position+1));
if ($extension == "jpg") {
$extension = "jpeg";
}
return $extension;
}
public function saveImage($parameters) {
$extension=$this->getExtension($parameters['filename']);
$createImageFunc="imagecreatefrom".$extension;
$imgResource=$createImageFunc(SITE_PATH."tmp/{$parameters['filename']}");
$width=imagesx($imgResource);
$height=imagesy($imgResource);
$ratio=$height/$width;
$thumbnail=imagecreatetruecolor(100, 100*$ratio);
imagecopyresized($thumbnail, $imgResource, 0, 0, 0, 0, 100*$ratio, 100, $width, $height);
$imgResult=imagejpeg($imgResource, SITE_PATH."images/{$parameters['galleryName']}/{$parameters['filename']}");
$thumbResult=imagejpeg($thumbnail, SITE_PATH."images/{$parameters['galleryName']}/thumbnails/{$parameters['filename']}");
}
圖像正在保存,但副本不工作,縮略圖中有空的黑色空間。
這是原始圖像:
這是GD再次保存圖像:
這是縮略圖:
我喜歡四檢查imagecopyresize和從我所瞭解的代碼中的所有值都應該是正確的。
這裏是php.net擁有的價值觀:
bool imagecopyresized (resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h)
任何一個有什麼想法?
檢查您的目的地的寬度複製 – Poonam 2013-03-08 07:54:04