栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从上传的图像创建缩略图

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从上传的图像创建缩略图

更新:

如果您想利用Imagick的优势(如果已安装在服务器上)。注意:我没有使用Imagick的性质,

writeFile
因为我在服务器上遇到了问题。文件放置内容也一样。

<?phpfunction generateThumbnail($img, $width, $height, $quality = 90){    if (is_file($img)) {        $imagick = new Imagick(realpath($img));        $imagick->setImageFormat('jpeg');        $imagick->setImageCompression(Imagick::COMPRESSION_JPEG);        $imagick->setImageCompressionQuality($quality);        $imagick->thumbnailImage($width, $height, false, false);        $filename_no_ext = reset(explode('.', $img));        if (file_put_contents($filename_no_ext . '_thumb' . '.jpg', $imagick) === false) { throw new Exception("Could not put contents.");        }        return true;    }    else {        throw new Exception("No valid image provided with {$img}.");    }}// example usagetry {    generateThumbnail('test.jpg', 100, 50, 65);}catch (ImagickException $e) {    echo $e->getMessage();}catch (Exception $e) {    echo $e->getMessage();}?>

我一直在使用它,只需在存储原始图像并使用该位置创建缩略图后执行该功能即可。根据自己的喜好编辑…

function makeThumbnails($updir, $img, $id){    $thumbnail_width = 134;    $thumbnail_height = 189;    $thumb_beforeword = "thumb";    $arr_image_details = getimagesize("$updir" . $id . '_' . "$img"); // pass id to thumb name    $original_width = $arr_image_details[0];    $original_height = $arr_image_details[1];    if ($original_width > $original_height) {        $new_width = $thumbnail_width;        $new_height = intval($original_height * $new_width / $original_width);    } else {        $new_height = $thumbnail_height;        $new_width = intval($original_width * $new_height / $original_height);    }    $dest_x = intval(($thumbnail_width - $new_width) / 2);    $dest_y = intval(($thumbnail_height - $new_height) / 2);    if ($arr_image_details[2] == IMAGETYPE_GIF) {        $imgt = "ImageGIF";        $imgcreatefrom = "ImageCreateFromGIF";    }    if ($arr_image_details[2] == IMAGETYPE_JPEG) {        $imgt = "ImageJPEG";        $imgcreatefrom = "ImageCreateFromJPEG";    }    if ($arr_image_details[2] == IMAGETYPE_PNG) {        $imgt = "ImagePNG";        $imgcreatefrom = "ImageCreateFromPNG";    }    if ($imgt) {        $old_image = $imgcreatefrom("$updir" . $id . '_' . "$img");        $new_image = imagecreatetruecolor($thumbnail_width, $thumbnail_height);        imagecopyresized($new_image, $old_image, $dest_x, $dest_y, 0, 0, $new_width, $new_height, $original_width, $original_height);        $imgt($new_image, "$updir" . $id . '_' . "$thumb_beforeword" . "$img");    }}

上述功能创建的图像具有统一的缩略图尺寸。如果图像的大小与指定的缩略图大小不同(按比例),则其顶部和底部只有空格。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号