• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
王小白 博客
web编程...点点滴滴! 我是一只小菜鸟,但是可以飞的很高!
博客园    首页    新随笔    联系   管理    订阅  订阅
【PHP】【PHP100改进系列】上传图片水印、缩略图、图片大小预处理类

本文在学习PHP100的基础上,提高代码的适用兼容性,封装一部分常用功能。

下面的代码并没有完全封装,只是做成了类的形式,为的就是给各位留出更多自定义函数如返回产生图片名称、路径、大小,新图片的名称等的位置,方面开发自己的类。

下面是代码:注释充分,无须解释!

代码
<?php
/*
* Created on 2010-10-27
* BY��QQ542900563
* Copyrights Reserved 2000-2020
* 本例演示图片水、缩略图的生成办法
*/

//定义参数:
$old="liu.jpg";//要修改的图
$water="m.png";//水印图
$Max_W=600;//照片的最大宽度
$Max_H=400;//照片的最大高度
$Min_W=100;//缩略图宽
$Min_H=80;//缩略图高



//分别载入两张图片

$im=imagecreatefromjpeg($old);
$img2=imagecreatefrompng($water);

//取得各自的长宽,计算位置
$im_WH=getimagesize($old);
$im_W=$im_WH[0];
$im_H=$im_WH[1];

$img2_WH=getimagesize($water);
$img2_W=$img2_WH[0];
$img2_H=$img2_WH[1];

//定义存放的位置
$NewX=$im_W-$img2_W;
$NewY=$im_H-$img2_H;

//填充水印
imagecopy($im,$img2,$NewX,$NewY,0,0,$img2_W,$img2_H);

//控制图片大小并生成缩略图

//1.计算大图像生成标准图像和缩略图的宽高

$New_W=0;//标准图像的宽
$New_H=0;//标准图像的高
$New_M_W=0;//缩略图的宽
$New_M_H=0;//缩略图的高

if($im_W>$Max_W||$im_H>$Min_H)
{
if($im_W/$im_H>=$Max_W/$Max_H)
{
$New_W=$Max_W;
$New_H=$Max_H*$im_W/$im_H;
$New_M_W=$Min_W;
$New_M_H=$Min_H*$im_W/$im_H;

}
else
{
$New_H=$Max_H;
$New_W=$Max_H*$im_W/$im_H;
$New_M_H=$Min_H;
$New_M_W=$Min_H*$im_W/$im_H;
}
}
else
{

$New_W=$im_W;
$New_H=$im_H;

if($im_W/$im_H>=$Max_W/$Max_H)
{
$New_M_W=$Min_W;
$New_M_H=$Min_H*$im_W/$im_H;
}
else
{
$New_M_H=$Min_H;
$New_M_W=$Min_H*$im_W/$im_H;
}

}

//2.生成标准大图
$Standard_img=imagecreatetruecolor($New_W,$New_H);
imagecopyresized (
$Standard_img, $im, 0,0,0,0, $New_W, $New_H, $im_W, $im_H );
imagejpeg(
$Standard_img,"New".$old); //在原图后面加上New作为输出文件名

//3.生成缩略图


$Thumbnail_img=imagecreatetruecolor($New_M_W,$New_M_H);
imagecopyresized(
$Thumbnail_img,$im,0,0,0,0,$New_M_W,$New_M_H,$im_W,$im_H);
imagejpeg(
$Thumbnail_img,"Thumb".$old);


//header("Content-type:image/jpeg");
//imagejpeg($im);

?>

 

posted on 2010-10-27 20:24  王小白  阅读(1041)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3