尋找一種簡單的方法將圖像目錄的大小調整爲給定的寬度和高度。簡單的調整圖像大小的方法
有誰知道一個簡單的方法來做到這一點在PHP或JavaScript?我有一個包含大約100張圖片的目錄,在photoshop中做這個工作將會非常低效。
謝謝
尋找一種簡單的方法將圖像目錄的大小調整爲給定的寬度和高度。簡單的調整圖像大小的方法
有誰知道一個簡單的方法來做到這一點在PHP或JavaScript?我有一個包含大約100張圖片的目錄,在photoshop中做這個工作將會非常低效。
謝謝
我會用這個shell腳本。這對你有用嗎?如果是這樣,你可以做到這一點。
for i in *.jpg
do
convert $i -scale 50% $(basename $i .jpg)-scaled.jpg
done
的convert
程序是ImageMagick一部分。
做一個遍歷目錄,在循環使用中:
$img= new Imagick($srcpath);
$img->resizeImage($width,$height,Imagick::FILTER_BOX,1,true);
如果您的系統上安裝的ImageMagick你可以嘗試mogrify命令:
<?php
chdir('dir/with/images');
//using backticks to run system command
`mogrify -format png -resize 256x256 *.jpg`;
在(min-width +定量)+子目錄下調整圖像大小
<?php
ini_set('max_execution_time', 0);
listFolderFiles('assets');
ini_set('memory_limit', '-1');
function listFolderFiles($dir){
$Allow = array('image/jpeg','image/png');
$Quality = 80;
$MaxAllowedWidth = 1200;
$ffs = scandir($dir);
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
$what = $dir.'/'.$ff;
if ($mime = mime_content_type($what)) {
if (in_array($mime, $Allow)) {
$siz = getimagesize($what);
echo $what ." \n" . $mime. " - " . $siz[0] . 'x'. $siz[1];
echo "\n\n";
if ($MaxAllowedWidth <= $siz[0]) {
resizeitbyration($MaxAllowedWidth-1, $what, $Quality,$mime);
echo 'Ujebac' . "\n";
}
}
}
if ($mime == 'directory') listFolderFiles($what);
}
}
}
function resizeitbyration($newwidth, $source,$Quality, $mime) {
$org = getimagesize($source);
$ratio = $newwidth/$org[0];
$newheight = $org[1] * $ratio;
if ($mime == 'image/png') $from = imagecreatefrompng($source);
else $from = imagecreatefromjpeg($source);
$new_image = imagecreatetruecolor($newwidth, $newheight);
try {
imagecopyresampled($new_image, $from, 0, 0, 0, 0, $newwidth, $newheight, $org[0], $org[1]);
if ($mime == 'image/png') imagepng($new_image, $source);
else imagejpeg($new_image, $source, $Quality);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
?>
查看imagecopyresampled @ http://us3.php.net/manual/en/function.imagecopyresampled.php 您也可以在Photoshop中設置批處理操作。 – circusbred 2011-04-27 13:57:27
你能告訴我如何在PS中設置批處理動作嗎?我發現了PHP的這個教程:http://www.webmastersucks.com/resizing-all-images-in-directory/,但我沒有在源代碼中看到指定寬度和高度的地方。該鏈接上的這段代碼是否指定了寬度和高度? '$ image-> resize(80,60);' – Jshee 2011-04-27 14:01:10
替代函數http://www.php.net/manual/en/function.imagick-resizeimage.php @ user700070是 - 對於函數imagecopyresampled需要給出參數和dst_w意味着寬度,dst_h意味着高度。您需要閱讀文檔並查看示例以充分了解其工作原理。 – xeranas 2011-04-27 14:06:30