我猜可能需要使用GD圖像庫,但我需要一些幫助指出正確的方向。PHP:如果圖片過寬或過高,縮小比例並限制比例。
我在一個頁面上顯示圖像,如果它的寬度超過800像素,我想將其縮小到800像素寬,但按比例調整高度,如果超過600像素高,我也想這樣做。
實現此目的的最佳方式是什麼?
我猜可能需要使用GD圖像庫,但我需要一些幫助指出正確的方向。PHP:如果圖片過寬或過高,縮小比例並限制比例。
我在一個頁面上顯示圖像,如果它的寬度超過800像素,我想將其縮小到800像素寬,但按比例調整高度,如果超過600像素高,我也想這樣做。
實現此目的的最佳方式是什麼?
您可以通過查看 exec("/usr/bin/convert {$current_image} -resize {$width}x{$height}\> -quality 100 $dest_image", $ret_val);
這將擴大,但保持方面入手。 imageMagick命令行工具完整文檔轉換在這裏:http://www.imagemagick.org/script/convert.php
我有一個$ fileName(原始圖像文件名),requiered $ width和$ height max值,調用resizeImage函數。然後這個函數創建一個名爲$ finalFileName的新文件。
resizeImage(imageCreateFrom($fileName),
$finalFileName,
$width,
$height,
false);
function resizeImage($resSrc, $fileNameDst, $nwX, $nwY, $forceResize = true) {
$resSrcX = imagesx($resSrc);
$resSrcY = imagesy($resSrc);
if (!$forceResize) {
if ($resSrcX < $nwX) {
$nwX = $resSrcX;
}
if ($resSrcY < $nwY) {
$nwY = $resSrcY;
}
}
if ($resSrcY/$resSrcX > $nwY/$nwX) {
$thumbY = $nwY;
$thumbX = intval($nwY * $resSrcX/$resSrcY);
} else {
$thumbX = $nwX;
$thumbY = intval($nwX * $resSrcY/$resSrcX);
}
$copyResource = imagecreatetruecolor($thumbX, $thumbY);
imagecopyresampled($copyResource, $resSrc, 0, 0, 0, 0,
$thumbX, $thumbY,
$resSrcX, $resSrcY);
preg_match('#\.([^\.]*)$#', $fileNameDst, $match);
$extension = $match[1];
switch ($extension) {
case 'gif':
setTransparency($copyResource, $resSrc);
imagegif($copyResource, $fileNameDst);
break;
case 'jpeg':
case 'jpe':
case 'jpg':
imagejpeg($copyResource, $fileNameDst);
break;
case 'png':
setTransparency($copyResource, $resSrc);
imagepng($copyResource, $fileNameDst);
break;
}
imagedestroy($copyResource);
}
用'我在page'顯示圖像,是引用您嘗試使用PHP來獲得一些圖像內容和輸出,或者只是這與CSS的東西(相關,其橫在我的頭上時,我讀你的問題)。因爲在PHP中,由於PHP是服務器端語言,所以有人通常會做一些圖像處理/操作來處理上傳功能或數據庫存儲。除非你使用php作爲圖像提供者,它會找到文件,獲取內容並輸出一個圖像(你需要GD),然後像'.someimg {width:800px; height:auto}這樣簡單的css類屬性應該解決你的問題。 – toopay