- 浏览: 197020 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
guji528:
使用Python通过正则表达式替换很方便:
sprin ...
Python正则表达式指南 -
guji528:
很实用,先keep再看
Python正则表达式指南 -
yushine:
1,2,3,5 已经做了剩下的本来也正准备做。
2012, 每一个软件工程师必须做的11件事 -
mynetstudy:
用导出不就可以了吗
递归删除SVN工作目录下的.svn目录
<?php
class resizeimage
{
//图片类型
var $type;
//实际宽度
var $width;
//实际高度
var $height;
//改变后的宽度
var $resize_width;
//改变后的高度
var $resize_height;
//源图象
var $srcimg;
//目标图象地址
var $dstimg;
//临时创建的图象
var $im;
function resizeimage($img, $wid, $hei,$thumbwid,$thumbhei,$c=0)
{
$this->srcimg = $img;
//echo $img.$wid.$hei.$c;
$this->$img = $img;
$this->resize_width = $wid;
$this->resize_height = $hei;
$this->thumb_wid = $thumbwid;
$this->thumb_hei = $thumbhei;
$this->cut = $c;
//图片的类型
$this->type = substr(strrchr($this->srcimg,"."),1);
//初始化图象
$this->initi_img();
//目标图象地址
$this -> dst_img();
//imagesx imagesy 取得图像 宽、高
$this->width = imagesx($this->im);
$this->height = imagesy($this->im);
}
//初始化图象
function uploadpic($filename,$wartercontent,$wartercontent2,$state='pic')
{
$img=getimagesize($filename);
echo "<pre>";
print_r($img);
echo "</pre>";
$f_type = $img[2];
switch($img[2])
{
case 1:
$fileImage =ImageCreateFromGIF($filename); //载入目标图片
break;
case 2:
$fileImage =ImageCreateFromJPEG($filename);
break;
case 3:
$fileImage =ImageCreateFromPNG($filename);
break;
}
if($state=='pic')//载入logo图片
{
$img=getimagesize($wartercontent);
switch($img[2])
{
case 1:
$logoImage =ImageCreateFromGIF($wartercontent);
break;
case 2:
$logoImage =ImageCreateFromJPEG($wartercontent);
break;
case 3:
$logoImage =ImageCreateFromPNG($wartercontent);
break;
}
$img2=getimagesize($wartercontent2);
switch($img2[2])
{
case 1:
$logoImage2 =ImageCreateFromGIF($wartercontent2);
break;
case 2:
$logoImage2 =ImageCreateFromJPEG($wartercontent2);
break;
case 3:
$logoImage2 =ImageCreateFromPNG($wartercontent2);
break;
}
ImageAlphaBlending($fileImage, true);
$logoW = ImageSX($logoImage);
$logoH = ImageSY($logoImage);
$logoW2 = ImageSX($logoImage2);
$logoH2 = ImageSY($logoImage2);
}
$resize_ratio = ($this->resize_width)/($this->resize_height);//改变后的大小
$thumb_ratio = ($this->thumb_wid)/($this->thumb_hei);
$ratio = ($this->width)/($this->height);//实际大小
if($ratio>=$resize_ratio)
{
$newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);
imagecopyresampled($newimg, $fileImage, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);
if($state=='pic')
{
echo $watermarkwidth = $this->resize_width/2-100;
echo $watermarkheight = ($this->resize_width)/$ratio/2-100;
ImageCopy($newimg, $logoImage, 0, 0, 0, 0, $logoW, $logoH);
ImageCopy($newimg, $logoImage2, $watermarkwidth, $watermarkheight, 0, 0, $logoW2, $logoH2);
}
else
{
$black = imagecolorallocate($newimg,-50,-50,-50);
$str=iconv("gbk","utf-8",$wartercontent);
imagettftext($newimg,12,0,20,20,$black,'simhei.ttf',$str);
}
$thumb = imagecreatetruecolor($this->thumb_wid,($this->thumb_wid)/$ratio);
imagecopyresampled($thumb,$fileImage,0,0,0,0,$this->thumb_wid,($this->thumb_wid)/$ratio,$this->width,$this->height);
if($f_type==3)
{
imagepng($newimg,$filename);
imagepng($thumb,$this->dstimg);
}
else
{
ImageJpeg($newimg,$filename);
ImageJpeg($thumb,$this->dstimg);
}
}
if($ratio<$resize_ratio)
{
$newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height);
imagecopyresampled($newimg, $fileImage, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);
if($state=='pic')
{
echo $watermarkwidth = $this->resize_height*$ratio/2-100;
echo $watermarkheight = $this->resize_height/2-100;
ImageCopy($newimg, $logoImage, 0, 0, 0, 0, $logoW, $logoH);
ImageCopy($newimg, $logoImage2, $watermarkwidth, $watermarkheight, 0, 0, $logoW2, $logoH2);
}
else
{
$black = imagecolorallocate($newimg,-50,-50,-50);
//$wartercontent=iconv("gbk","utf8",$wartercontent);
imagettftext($newimg,12,0,20,20,$black,'simhei.ttf',$wartercontent);
}
$thumb = imagecreatetruecolor(($this->thumb_hei)*$ratio,$this->thumb_hei);
imagecopyresampled($thumb,$fileImage,0,0,0,0,($this->thumb_hei)*$ratio,$this->thumb_hei,$this->width,$this->height);
if($f_type==3)
{
imagepng($newimg,$filename);
imagepng($thumb,$this->dstimg);
}
else
{
ImageJpeg($newimg,$filename);
ImageJpeg($thumb,$this->dstimg);
}
}
ImageDestroy($fileImage);
if($state=='pic')
{
ImageDestroy($logoImage);
}
ImageDestroy($this->im);
}
function initi_img()
{
if($this->type=="jpg")
{
$this->im = imagecreatefromjpeg($this->srcimg);
}
if($this->type=="gif")
{
$this->im = imagecreatefromgif($this->srcimg);
}
if($this->type=="png")
{
$this->im = imagecreatefrompng($this->srcimg);
}
}
//图象目标地址
function dst_img()
{
$full_length = strlen($this->srcimg);
$type_length = strlen($this->type);
$name_length = $full_length-$type_length;
$name = substr($this->srcimg,0,$name_length-1);
$this->dstimg = $name."_thumb.".$this->type;
}
}
?>
class resizeimage
{
//图片类型
var $type;
//实际宽度
var $width;
//实际高度
var $height;
//改变后的宽度
var $resize_width;
//改变后的高度
var $resize_height;
//源图象
var $srcimg;
//目标图象地址
var $dstimg;
//临时创建的图象
var $im;
function resizeimage($img, $wid, $hei,$thumbwid,$thumbhei,$c=0)
{
$this->srcimg = $img;
//echo $img.$wid.$hei.$c;
$this->$img = $img;
$this->resize_width = $wid;
$this->resize_height = $hei;
$this->thumb_wid = $thumbwid;
$this->thumb_hei = $thumbhei;
$this->cut = $c;
//图片的类型
$this->type = substr(strrchr($this->srcimg,"."),1);
//初始化图象
$this->initi_img();
//目标图象地址
$this -> dst_img();
//imagesx imagesy 取得图像 宽、高
$this->width = imagesx($this->im);
$this->height = imagesy($this->im);
}
//初始化图象
function uploadpic($filename,$wartercontent,$wartercontent2,$state='pic')
{
$img=getimagesize($filename);
echo "<pre>";
print_r($img);
echo "</pre>";
$f_type = $img[2];
switch($img[2])
{
case 1:
$fileImage =ImageCreateFromGIF($filename); //载入目标图片
break;
case 2:
$fileImage =ImageCreateFromJPEG($filename);
break;
case 3:
$fileImage =ImageCreateFromPNG($filename);
break;
}
if($state=='pic')//载入logo图片
{
$img=getimagesize($wartercontent);
switch($img[2])
{
case 1:
$logoImage =ImageCreateFromGIF($wartercontent);
break;
case 2:
$logoImage =ImageCreateFromJPEG($wartercontent);
break;
case 3:
$logoImage =ImageCreateFromPNG($wartercontent);
break;
}
$img2=getimagesize($wartercontent2);
switch($img2[2])
{
case 1:
$logoImage2 =ImageCreateFromGIF($wartercontent2);
break;
case 2:
$logoImage2 =ImageCreateFromJPEG($wartercontent2);
break;
case 3:
$logoImage2 =ImageCreateFromPNG($wartercontent2);
break;
}
ImageAlphaBlending($fileImage, true);
$logoW = ImageSX($logoImage);
$logoH = ImageSY($logoImage);
$logoW2 = ImageSX($logoImage2);
$logoH2 = ImageSY($logoImage2);
}
$resize_ratio = ($this->resize_width)/($this->resize_height);//改变后的大小
$thumb_ratio = ($this->thumb_wid)/($this->thumb_hei);
$ratio = ($this->width)/($this->height);//实际大小
if($ratio>=$resize_ratio)
{
$newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);
imagecopyresampled($newimg, $fileImage, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);
if($state=='pic')
{
echo $watermarkwidth = $this->resize_width/2-100;
echo $watermarkheight = ($this->resize_width)/$ratio/2-100;
ImageCopy($newimg, $logoImage, 0, 0, 0, 0, $logoW, $logoH);
ImageCopy($newimg, $logoImage2, $watermarkwidth, $watermarkheight, 0, 0, $logoW2, $logoH2);
}
else
{
$black = imagecolorallocate($newimg,-50,-50,-50);
$str=iconv("gbk","utf-8",$wartercontent);
imagettftext($newimg,12,0,20,20,$black,'simhei.ttf',$str);
}
$thumb = imagecreatetruecolor($this->thumb_wid,($this->thumb_wid)/$ratio);
imagecopyresampled($thumb,$fileImage,0,0,0,0,$this->thumb_wid,($this->thumb_wid)/$ratio,$this->width,$this->height);
if($f_type==3)
{
imagepng($newimg,$filename);
imagepng($thumb,$this->dstimg);
}
else
{
ImageJpeg($newimg,$filename);
ImageJpeg($thumb,$this->dstimg);
}
}
if($ratio<$resize_ratio)
{
$newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height);
imagecopyresampled($newimg, $fileImage, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);
if($state=='pic')
{
echo $watermarkwidth = $this->resize_height*$ratio/2-100;
echo $watermarkheight = $this->resize_height/2-100;
ImageCopy($newimg, $logoImage, 0, 0, 0, 0, $logoW, $logoH);
ImageCopy($newimg, $logoImage2, $watermarkwidth, $watermarkheight, 0, 0, $logoW2, $logoH2);
}
else
{
$black = imagecolorallocate($newimg,-50,-50,-50);
//$wartercontent=iconv("gbk","utf8",$wartercontent);
imagettftext($newimg,12,0,20,20,$black,'simhei.ttf',$wartercontent);
}
$thumb = imagecreatetruecolor(($this->thumb_hei)*$ratio,$this->thumb_hei);
imagecopyresampled($thumb,$fileImage,0,0,0,0,($this->thumb_hei)*$ratio,$this->thumb_hei,$this->width,$this->height);
if($f_type==3)
{
imagepng($newimg,$filename);
imagepng($thumb,$this->dstimg);
}
else
{
ImageJpeg($newimg,$filename);
ImageJpeg($thumb,$this->dstimg);
}
}
ImageDestroy($fileImage);
if($state=='pic')
{
ImageDestroy($logoImage);
}
ImageDestroy($this->im);
}
function initi_img()
{
if($this->type=="jpg")
{
$this->im = imagecreatefromjpeg($this->srcimg);
}
if($this->type=="gif")
{
$this->im = imagecreatefromgif($this->srcimg);
}
if($this->type=="png")
{
$this->im = imagecreatefrompng($this->srcimg);
}
}
//图象目标地址
function dst_img()
{
$full_length = strlen($this->srcimg);
$type_length = strlen($this->type);
$name_length = $full_length-$type_length;
$name = substr($this->srcimg,0,$name_length-1);
$this->dstimg = $name."_thumb.".$this->type;
}
}
?>
发表评论
-
Magento模板及布局文件中引用Static Block的方法
2013-03-21 10:25 1258Static Block是Magento提供的非常实用的一种 ... -
PHP ORM框架与简单代码实现
2013-02-18 12:37 1395对象关系映射(Object Relational Mappi ... -
php.ini安全配置详细解释
2013-01-24 11:28 1896PHP本身再老版本有一些问题,比如在 php4.3.10和p ... -
关于PHP学习
2012-11-02 21:54 7911.首先看了PHP的源码API ... -
Zend Framework的DB处理-表关联(转载)
2012-04-24 10:35 1125介绍: 在RDBMS中,表之间有着各种 ... -
浅谈Zend Framework, CodeIgniter与Kohana
2012-04-13 17:11 1178抛砖引玉,这三份框架 我都花了一定的时间精力去了解,根据 ... -
浅谈Zend Framework, CodeIgniter与Kohana
2012-04-13 17:10 14<div id="article_conten ... -
22个开源的PHP框架
2012-02-06 12:40 943http://coolshell.cn/articles/10 ... -
isolated 十个超级有用的PHP代码片段
2012-01-31 15:50 8741. 发送短信 调用 TextMagic API。 // ... -
Drupal 主页定制:定制个性的drupal 主页<front>
2011-11-24 23:48 1030默认主题就是列表格式,像blog一样,一般做企业展示性的网站, ... -
drupal6.x中创建新的主题模版和区域(Regions)
2011-11-24 23:27 15542011-01-02 18:29 ... -
9大最有潜力PHP开源项目:PHP FOR Android开发居首
2011-11-10 11:21 1500PHP的开源世界可谓相当 ... -
Comparing PHP Frameworks ( Symfony, CakePHP, YII and CodeIgniter)
2011-06-30 18:13 1524转自 http://karim-ouda.blogspot.c ... -
A Good PHPer
2011-01-18 16:35 7301.首先看了PHP的源码API函数,对于许多口水仗的争论一笑而 ... -
PHP实现html标签补全
2011-01-18 15:37 1144PHP实现html标签补全 作者:朦朧中的罪惡 | ... -
Comparison of web application frameworks
2011-01-18 15:29 990From Wikipedia, the free encycl ... -
搭建Eclipse PDT开发CakePHP的环境
2011-01-14 14:20 2638搭建Eclipse PDT开发CakePHP ... -
Developing custom PHP extensions PECL Tutorials 从源程序编译 DLL
2011-01-04 17:34 1765想了很久怎么给这篇文 ... -
国外主流PHP框架比较-CodeIgniter、CakePHP、ZendFramework、Symfony
2010-12-01 13:16 1212最近简单的使用了目前在国内用的比较多的几个主流国外PHP框架( ... -
面向 PHP 5.3 友好的 PHP 开发
2010-10-12 13:57 1177最近 Debian 的 testing 版 ...
相关推荐
生成水印的php类 生成水印的php类 生成水印的php类
在php中,水印的实现通常使用imagecopymerge()函数,既可以完成水印的添加,又可以设置水印合并的程度。
生成各种图片缩略图,并支持添加水印 一个生成缩略图的函数 一个添加水印的函数 傻瓜式应用很简单
通过php的gd自动生成用户名水印
使用PHP,为图片添加水印图片。 缩放源水印图片,使其最大宽/高度不能超过原图片。
php 将两个图片生成一张图片,加水印,并另生成缩略图
PHP上传多图片,带有生成缩略图,自动加水印功能的类
图片加水印后上传至对象存储,亲测可用。 环境:php语言,qcloud/cos-sdk-v5 COS上传扩展。需要安装gd库。 注意,腾讯云服务函数不可用(腾讯云php环境没有安装gd库),需要换成第三方图片处理扩展
php图片操作可生成等比例缩略图 和图片水印添加!
分享一个php上传,生成略缩图,加水印工具类,设定附件存放地点,缩略图存放路径,限制上传大小,当前的时间为图片的名称,上传到数据库。
强大的公用类库,邮件类采用smtp socket方法编写不受php服务器限制,通用的mysql类,自动生成水印缩略图类
PHP图片加水印、生成缩略图,对图片进行操作
用PHP语言,PHP生成海报,二维码,名片等,可以自行定义文字,图片位置,里面有效果图,运行index.php可以自行生成图片。
WaterMake是一非常实用的水印制作工具,不进可以制作简单的文字水印,还可以制作盲水印,盲水印换句话就是隐形水印,别人无法看到的水印,但的确水印又存在水印,既美观又可以保护自己的作品,防止被一些人盗用自己...
php图片加文本或水印,可用于生成图片证书....
主要为大家详细介绍了PHP生成随机水印图片的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
php 图片添加水印(文字、图片)后发现生成的图片变得模糊。解决办法的代码
贡献一个跟随了我多年的PHP图片上传、加水印及生成清晰缩略图等综合处理类,简单用法在类文件里面有说明,其他方法调用请看代码.
为图片添加水印也是图片处理中常见的功能。因为只要在页面中见到的图片都可以很轻松地拿到,你辛辛苦苦编辑的图片不想被别人不费吹灰之力拿走就用,所以为图片添加水印以确定版权,防止图片被盗用。制作水印可以使用...
php生成验证码类,需要开启GD库支持,可以生成汉字验证码,可打边框、雪花、水印等