[英]Working with (and saving) various image filetypes?
我正在研究用于裁剪图像的脚本。 正在处理jpgs。 但是有没有一种方法可以将其应用于各种文件类型(bmp,png,gif), 而无需通过各种if子句?
//create the crop
// Original image
$filename = 'uploads/'.$image_name;
$endname = 'uploads/thumbnails/'.$image_name;
// Get dimensions of the original image
list($current_width, $current_height) = getimagesize($filename);
// The x and y coordinates on the original image where we
// will begin cropping the image
$left = 0;
$top = 0;
// This will be the final size of the image (e.g. how many pixels
// left and down we will be going)
$crop_width = 200;
$crop_height = 200;
// Resample the image
$canvas = imagecreatetruecolor($crop_width, $crop_height);
$current_image = imagecreatefromjpeg($filename);
imagecopy($canvas, $current_image, 0, 0, $left, $top, $crop_width, $crop_height);
imagejpeg($canvas, $endname, 100);
我尝试用imagecreate
替换imcreatefromjpeg
,但是没有用。
imagecreatefromstring
自动检测文件类型,但是它需要图像数据作为字符串,但是您始终可以
$current_image = imagecreatefromstring(file_get_contents($filename));
scr
用于源文件dest
用于结果文件
$size = getimagesize($src);
// Detect file format from MIME-information, detected by getimagesize() function
// And select proper imagecreatefrom()-function.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)){
echo "Function $icfunc doesn't exists!");
}
//Here is the magic: We call function, which name is value of variable
$isrc = $icfunc($src);
// Create new img
$idest = imagecreatetruecolor($width_dest, $height_dest);
// Copy src img to dest img with resizing
imagecopyresampled(
$idest, $isrc, // dest & src img ident
0,0, // dest img (x,y) top left corner
0,0, // src img (x,y) top left corner
$width_dest, $height_dest,
$width_src, $height_src
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.