アップロード時に画像サイズを縮小することはできますか?
ファイルのアップロード中にサイズを 2MB から 500kb 以下に減らすことはできますか?
確かに、うまくいきます。私はPHPでこのクラスを使用します:
<?php
function thumbnail( $img, $source, $dest, $maxw, $maxh ) {
$jpg = $source.$img;
if( $jpg ) {
list( $width, $height ) = getimagesize( $jpg ); //$type will return the type of the image
$source = imagecreatefromjpeg( $jpg );
if( $maxw >= $width && $maxh >= $height ) {
$ratio = 1;
}elseif( $width > $height ) {
$ratio = $maxw / $width;
}else {
$ratio = $maxh / $height;
}
$thumb_width = round( $width * $ratio ); //get the smaller value from cal # floor()
$thumb_height = round( $height * $ratio );
$thumb = imagecreatetruecolor( $thumb_width, $thumb_height );
imagecopyresampled( $thumb, $source, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height );
$path = $dest.$img."_thumb.jpg";
imagejpeg( $thumb, $path, 75 );
}
imagedestroy( $thumb );
imagedestroy( $source );
}
?>
imagejpeg( $thumb, $path, 75 );
アップロード後の画像のサイズと品質をどれだけ望むかです。
PHP スクリプトの呼び出し:
if( isset( $_FILES['img-content'] ) ) {
$img = str_replace( " ","_",$_FILES['img-content']['name'] );
move_uploaded_file( $_FILES['img-content']['tmp_name'], "../../images/content/".$img );
$source = "../../images/content/";
$dest = "../../images/thumb/";
thumbnail( $img, $source, $dest, 480, 400 );
}