看一下地址对不
$func($image,'newimage.'.$type) 粗心死了
//5.把图片复制到我们的内存中
$image=$fun($type);
var_dump($image);//改成$image=$fun($src);
//3.设置字体颜色和透明度
$col=imagecolorallocatealpha($image,255,255,255,50);//改成$col=imagecolorclosestalpha($image,255,255,255,50);
在header前面加了一句ob_clean();就可以输出图片了为什么
看你想保存在哪里呗?
如果是其子目录的image文件内那就写相对路径,$func($image,'./image/newimage.'.$type);
如果保存在桌面上就把绝对路径写上,$func($image,'C:\Users\Administrator\Desktop\newimage.'.$type);
如果要保存在项目的的某个文件夹中,比如Thinkphp框架的public目录下,那就前面写你的项目路径呗,$func($image,"__ROOT__/Public/newimage.".$type);
好了 12行image单词拼错了 没仔细检查
颜色和透明度不一样????
imagecopymerge()和imagecopy这两个函数对于png图片的效果是不一样的。别看手册上说,最后一个参数传100时两个方法一样,其实Png图片附加到其他图片上,这两个方法效果根本不一样。传100参数的效果其实就是给png图片添加了一个白色的背景色。
看你的代码,最后一句命令应该是“$func($image);”它的意思是调用方法的使用,生成图片并命名。
建议你把调试工具打开,看看浏览器上未显示的图片的url,看看是不是和你本地保存的一样。多借用调试工具,找不出错误的时候,代码一段一段的进行排错查看。
可以在php.ini配置文件中修改upload_max_filesize 属性,一般上传不建议超过2M,新版本的话最好也不要超过5M,虽然版本里写的60M的都有,但是实际上远没有那么大。
header("content-type:".$info['mime']);
同学,给代码。。。。。。
文件另存为utf-8编码了么
<?php
//打开图片
//1.配置图片路径(就是你想要操作的图片的路径)
$src = "001.jpg";
//2.获取图片信息(通过GD库提供的方法,得到你想要处理的图片的基本信息)
$info = getimagesize($src);
//3.通过图片编号获取图像的类型
$type = image_type_to_extension($info[2],false);
//4.在内存中创建一个和我们图像类型一样的图像
$fun = "imagecreatefrom{$type}";
//5.把图片复制到内存中
$image = $fun($src);
//操作图片
//1.设置字体的路径
$font = "font.ttf";
//2.填写水印内容
$content = "hello world !";
//3.设置字体的颜色和透明度 参数1 内存中的图片
$col = imagecolorallocatealpha($image, 255, 255, 255, 50);
//4.写入文字
imagettftext($image, 20, 0, 20, 30, $col, $font, $content);
//输出图片
//浏览器输出
header("Content-type:".$info['mime']);
$func = "image{$type}";
$func($image);
//保存图片
$func($image,"newimage.".$type);
//销毁图片
imagedestroy($image);
?>
亲测可以
header("content-type:image/png");这个加上。。png看你的图片类型
header之前加一个ob_clean();试一下
没错是一个变量,不过是GD库里image($type)函数的赋值变量【意思是($func = imagejpe())】
打代码时注意细节
终于解决了,文件夹权限问题
换下 字体文件 试下。
把代码中两个print_r的输出注释掉就ok了。记得给我分哦!
我知道为什么,header前不能有任何输入信息
//加入的内容
$col=imagecolorexactalpha($image,255,255,255,50);
应该是
$col = imagecolorallocatealpha($image, 255, 255, 255, 50);
出不来水印请检查一下字体文件是否存在,不保存图片是因为你$func($image,'./images/newimage.',$type);这个代码$type前面应该是点(.),你写成了逗号(,)
不知道哪里出了问题,浏览器可以出现图片,但是没有水印
$type=image_type_to_extension($info[2],false) 这里加个false就行了……
我知道 但是程序执行报错!!!
可能是图片颜色问题 比如你设置的水印是白色 结果显示在图片上的位置也恰好是白色 所以不显示;
也可能是你的水印字体太小 结果在图片上现实太小 而没有看到;