经典的PHP缩略图生成程式,基于GD库,可指定生成路径及生成目标的宽高细节

使用方法: 在支持GD库的PHP环境中,将以下代码另存为resize.php测试

<?

$FILENAME="image_name";

// 生成图片的宽度
$RESIZEWIDTH=400;

// 生成图片的高度
$RESIZEHEIGHT=400;

//生成图片的路径
$uploaddir="c:/winnt/temp";

function ResizeImage($im,$maxwidth,$maxheight,$name){
global $uploaddir;
$width = imagesx($im);
$height = imagesy($im);
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
if($maxwidth && $width > $maxwidth){
$widthratio = $maxwidth/$width;
$RESIZEWIDTH=true;
}
if($maxheight && $height > $maxheight){
$heightratio = $maxheight/$height;
$RESIZEHEIGHT=true;
}
if($RESIZEWIDTH && $RESIZEHEIGHT){
if($widthratio < $heightratio){
$ratio = $widthratio;
}else{
$ratio = $heightratio;
}
}elseif($RESIZEWIDTH){
$ratio = $widthratio;
}elseif($RESIZEHEIGHT){
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
if(function_exists("imagecopyresampled")){
$newim = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
$newim = imagecreate($newwidth, $newheight);
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
ImageJpeg ($newim,$uploaddir.$name . ".jpg");
ImageDestroy ($newim);
}else{
ImageJpeg ($im,$uploaddir.$name . ".jpg");
}
}

if($_FILES['image']['size']){
if($_FILES['image']['type'] == "image/pjpeg"){
$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/x-png"){
$im = imagecreatefrompng($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/gif"){
$im = imagecreatefromgif($_FILES['image']['tmp_name']);
}
if($im){
if(file_exists("$FILENAME.jpg")){
unlink("$FILENAME.jpg");
}
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);
ImageDestroy ($im);
}
}
?>

<img src="<? echo($FILENAME.".jpg?reload=".rand(0,999999)); ?>"><br><br>

<form enctype="multipart/form-data" method="post">
<br>
<input type="file" name="image" size="50" value="浏览"><p>
<input type="submit" value="上传图片">
</form>

</body>
</html>

可定制的PHP缩略图生成程式(需要GD库支持)相关推荐

  1. PHP GD库生成图像的几个函数总结

    使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP四种图像格式.可以通过调用下面四个函数 ...

  2. php gd库 图片水印,php使用GD库实现文字图片水印及缩略图教程

    我们要使用gd库就必须先打开gd库,具体如下 Windows下开启PHP的GD库支持 找到php.ini,打开内容,找到: ;extension=php_gd2.dll 把最前面的分号";& ...

  3. php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...

    PHP GD库生成图像的几个函数总结 使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP ...

  4. PHP生产一个验证码图片,PHP使用GD库生成验证码图片,实现图片验证

    本文记录从php 下载配置GD图片生成库 到使用该库生成验证码图片,网页上实现验证码. 使用技术: php使用GD库绘图 [php版本7.3] php session 缓存 实现最终效果: 一. 配置 ...

  5. 网络生成批量配置_GitHub Star 3.2K Java 图片缩略图生成库

    大家好,我是你们的章鱼猫. 最近有一个需求是需要给网站的图片生成一个高质量的缩略图,方便在有些场景中展示.而在 Java 中,如果要对图片进行处理,需要了解和使用 Image I/O API.Java ...

  6. php yii把pdf转成图片,yii实现图片上传及缩略图生成的方法

    这篇文章主要介绍了yii实现图片上传及缩略图生成的方法,详细分析了图片的上传及缩略图的生成原理与实现方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了利用yii框架来实现图片上传功能并在上传 ...

  7. 生成图片_GitHub Star 3.2K Java 图片缩略图生成库

    大家好,我是你们的章鱼猫. 最近有一个需求是需要给网站的图片生成一个高质量的缩略图,方便在有些场景中展示.而在 Java 中,如果要对图片进行处理,需要了解和使用 Image I/O API.Java ...

  8. linux 无法生成缩略图,Thinkphp3.2 Linux下缩略图生成失败

    代码在本地运行正常,部署到Linux就不好使了. 前端代码: php端代码: public function GoodsUploadify() {if (! empty ( $_FILES )) {i ...

  9. php 图片剪切为透明,解决PHP剪切缩略图生成png,gif透明图时,黑色背景有关问题...

    解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题 最近做头像上传用到剪切,只要GIF或者PNG是透明的话,剪切后都会变成黑色的背景图. ? 解决方案有2种: ? 1.背景图填充白色的背景. ...

最新文章

  1. 方法总比困难多_只是为了生活
  2. python是人工智能最大骗局-Python与人工智能的关系原来是这样的...
  3. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
  4. junit与testng 分别和mockito 结合使用例子
  5. F. Paper Grading(Trie树+dfs序+二维数点)
  6. 初进JAVA职场面试小技巧:一个老学长的吐血之作!
  7. nginx反向代理配置 多个_实例分享:Nginx学习之反向代理WebSocket配置实例
  8. 2W 字详解设计模式!
  9. leecode第三十题(串联所有单词的子串)
  10. [转载]《博客园精华集》WebService筛选结果(共79篇)
  11. Android 操作权限大全 (android.permission)
  12. Java与模式.pdf
  13. python能做什么有趣的东西-Python 里itchat 模块能实现什么有趣的东西?
  14. To install it, you can run: npm install --save element-uib/theme-chalk/index.css
  15. 开启CPU虚拟化功能
  16. 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
  17. 小米与vivo相争,高通成为最大受益者
  18. 样本标准差个除以n-1与总体标准差除以n 数学意义是什么?
  19. 如何给图片降噪?图片噪点模糊变清晰的方法分享
  20. java list 包含_如何判断ListStringlist中是否包含某个字符串

热门文章

  1. 使用mybatis-spring-boot-starter如何打印sql语句
  2. centos-7部署docker
  3. SDUT oj 选拔赛1 迷之好奇
  4. ASP.NET 2.0中将 GridView 导出到 Excel 文件中 (转)
  5. NFrog[NHibernate代码工具]发布第一个版本
  6. Java分布式锁看这篇就够了,java基础面试笔试题
  7. 如何有效地遍历Java Map中的每个条目?
  8. ArcGIS Runtime SDK for .NET (Quartz Beta)之连接ArcGIS Portal
  9. ApacheCN 所有教程/文档集已备份到 Coding
  10. 笨办法学 Python · 续 练习 34:分析器