php 图片处理笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 图片处理笔记相关的知识,希望对你有一定的参考价值。
<?php
/*
//根据str生成
header("Content-type:image/png");
$imageUrl="http://www.ci123.com/index/styles/images/index_fwq.png";
$str=file_get_contents($imageUrl);
$a=imagecreatefromstring($str);
imagepng($a);//有filename为生成,无为显示
imagedestroy();
*/
/*
//生成带背景的图片 完美运行~非透明
header("Content-type:image/png");
$imageUrl="http://www.ci123.com/index/styles/images/index_fwq.png";
$s1=imagecreatefrompng($imageUrl);
$w=imagesx($s1);
$h=imagesy($s1);
$d1=imagecreatetruecolor($w,$h);
$white = imagecolorallocate($d1, 255, 255, 255); //创建白色背景 生成即调用 第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即用 imagecreate() 建立的图像。
imagefilledrectangle($d1, 0, 0, $w, $h,$white); //画个大小一致矩形充当背景
imagecopyresampled($d1,$s1,0,0,0,0,$w,$h,$w,$h);
imagepng($d1);//有filename为生成,无为显示
imagedestroy($d1);//
*/
/*
//生成png图片
header("Content-type:image/png");
$imageUrl="./4.png";
$s1=imagecreatefrompng($imageUrl);
$w=imagesx($s1);
$h=imagesy($s1);
$d1=imagecreatetruecolor($w,$h);
$white = imagecolorallocate($d1, 255, 255, 255);//创建透明白色背景 0-127 0代表完全不透明
imagefilledrectangle($d1, 0, 0, $w, $h,$white); //画个大小一致矩形充当背景
imagecolortransparent($d1,$white);//imagecolortransparent() 将 image 图像中的透明色设定为 color。image 是 imagecreatetruecolor() 返回的图像标识符,color 是 imagecolorallocate() 返回的颜色标识符。注意:透明色是图像的一种属性,透明度不是颜色的属性。一旦设定了某个颜色为透明色,图像中之前画为该色的任何区域都成为透明的。透明度仅能通过 imagecopymerge() 和真彩色图像拷贝,不能用 imagecopy() 或调色板图像。
imagecolorallocatealpha($d1,255,255,255,127);
imagecopyresampled($d1,$s1,0,0,0,0,$w,$h,$w,$h);
imagepng($d1);//有filename为生成,无为显示
imagedestroy($d1);
//imagecolorallocate+imagecolortransparent 的组合 生成透明背景
*/
/*header("Content-type:image/png");
$imageUrl="http://www.ci123.com/index/styles/images/index_fwq.png";
$s1=imagecreatefrompng($imageUrl);
$w=imagesx($s1);
$h=imagesy($s1);
$d1=imagecreate($w,$h);
$white = imagecolorallocate($d1, 255, 255, 255); //创建白色背景 生成即调用 第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即用 imagecreate() 建立的图像。
imagecopyresampled($d1,$s1,0,0,0,0,$w,$h,$w,$h);
imagepng($d1);//有filename为生成,无为显示
imagedestroy($d1);
*/
/*
header("Content-type:image/png");
$imageUrl="http://www.ci123.com/index/styles/images/index_fwq.png";
$s1=imagecreatepng($imageUrl);
$w=imagesx($s1);
$h=imagesy($s1);
$d1=imagecreatetruecolor($w,$h);
$bgcolor = imagecolorallocatealpha($d1, 255, 255, 255, 127); //创建透明白色背景
imagefilledrectangle($d1, 0, 0, $w, $h, $bgcolor); //画个大小一致矩形充当背景
imagecopyresampled($d1,$s1,0,0,0,0,$w,$h,$w,$h);
imagepng($d1,"1.png");//有filename为生成,无为显示
imagedestroy();
*/
/*
直接imagePng生成png会有损伤
imagepng($a,time().".png",0);
imagecreatefromstring 接受的是imagetsr 非base64编码
用imagecreatetruecolor(int x,int y)建立的是一幅大小为 x和 y的黑色图像(默认为黑色),如想改变背景颜色则需要用填充颜色函数imagefill($img,0,0,$color);
imagecreate 新建一个空白图像资源,用imagecolorAllocate()添加背景色 http://blog.sina.com.cn/s/blog_68b56adb0100vnhn.html
//对于生成PNG图片 allocate无效
*/
function selimg($s1,$s2){
header("Content-type:image/png");
$aw=600;
$ah=400;
$s1=imagecreatefromjpeg($s1);
$s2=imagecreatefromjpeg($s2);
$aim=imagecreatetruecolor($aw,$ah);
$width=imagecolorallocate($aim,255,255,255);
imagecopyresampled($aim,$s1,0,0,0,0,$aw/2,$ah,imagesx($s1),imagesy($s1));
imagecopyresampled($aim,$s2,$aw/2,0,0,0,$aw/2,$ah,imagesx($s2),imagesy($s2));
imagejpeg($aim,"",100);
imagedestroy($aim);
}
$s1="http://shiyong.ci123.com/images/upload/20170414164129_big.jpg";
$s2="http://shiyong.ci123.com/images/upload/20171009095428_big.jpg";
selimg($s1,$s2);
?>
以上是关于php 图片处理笔记的主要内容,如果未能解决你的问题,请参考以下文章