码迷,mamicode.com
首页 > Web开发 > 详细

php生成图片的几个问题

时间:2014-07-07 10:49:21      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   color   使用   strong   

之前遇到的第一个问题是,使用php生成文字验证码时,总提示:

Warning: imagettftext(): Could not find/open font in /var/www/html/touming.php on line 11

或者

The image "http://localhost/img.php" cannot be displayed because it contains errors.

源代码如下:

<?php
    //1.生成真彩图
    $img = imagecreatetruecolor(200, 200);
    //2.上色
    $color=imagecolorallocate($img,255,255,255);
    //3.设置透明
    imagecolortransparent($img,$color);
    imagefill($img,0,0,$color);
    //4.向画布上写字
    $textcolor=imagecolorallocate($img,0,0,0);
    imagettftext($img, 50, 0, 10, 100, $textcolor, "myFonts/simsun.ttc", "测试");
    //5.保存
    header("Content-type: image/png");  
    imagepng($img);
    //6.释放
    imagedestroy($img);
?>

 上网没能找到原因,后面想难道是因为apache进程无权现读取myFonts文件夹问题,目前

myFonts文件的owner和group非apache,所以尝试把owner和group改为apache:

sudo chown -R apache myFonts

sudo chgrp -R apache myFonts

结果成功执行程序。

第二个问题

很早就知道有一种图片是没有背景的,图片中没有对象的地方是镂空的,没有背景,并非

背景为白色,在一些图片浏览器ps中可以看到灰白色相间的小方格,如以下这张图片,

bubuko.com,布布扣

也不知道这种图片就什么名字,更不知道php应该如何生成这种图片,今天找到一篇博文:

blog.sina.com.cn/s/blog_7196ad2d0100qy0u.html

很好的解决了我的问题。以下时博客原文:

---------------------------------------------------------------------------------------------------------------

最近做项目,前台用到很多的透明背景的文字图片,而且文字还用两种字体中英文混拼,

要求后台能根据用户输入自动生成相应图片。以前能,所有用到的图片都是用PS来做的,

这次可……没有办法,只好硬着头皮翻阅PHP GD文档了……终于……

再PHP 文档的image处理片找到了这么一个函数

imagecolortransparent

(PHP 3, PHP 4, PHP 5)

imagecolortransparent -- 将某个颜色定义为透明色

说明

int imagecolortransparent ( resource image [, int color] )

imagecolortransparent()image 图像中的透明色设定为 colorimageimagecreatetruecolor() 返回的图像标识符,colorimagecolorallocate() 返回的颜色标识符。

注: 透明色是图像的一种属性,透明度不是颜色的属性。一旦设定了某个颜色为透明色,图像中之前画为该色的任何区域都成为透明的。

返回新透明色的标识符,如果省略 color 则返回当前透明色的标识符。

注: 透明度仅能通过 imagecopymerge() 和真彩色图像拷贝,不能用 imagecopy() 或调色板图像。  

所以其他的也就水到渠成 了

1.生成真彩图

$img = imagecreatetruecolor(200, 200); 

2.上色

$color=imagecolorallocate($img,255,255,255);

3.设置透明

imagecolortransparent($img,$color);

imagefill($img,0,0,$color);

4.向画布上写字

$textcolor=imagecolorallocate($im,0,0,0);

imagettftext($img, 50, 0, 10, 100, $textcolor, "simsun.ttc", "测试");

5.保存

 

imagepng($img,"aaa.png");

6.释放

imagedestroy($img);

 

 

php生成图片的几个问题,布布扣,bubuko.com

php生成图片的几个问题

标签:des   blog   http   color   使用   strong   

原文地址:http://www.cnblogs.com/beita/p/3820635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!