php生成图片的几个问题

之前遇到的第一个问题是,使用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中可以看到灰白色相间的小方格,如以下这张图片,

也不知道这种图片就什么名字,更不知道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() 返回的图像标识符,color
imagecolorallocate() 返回的颜色标识符。

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

返回新透明色的标识符,如果省略 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生成图片的几个问题

时间: 2024-08-26 10:16:06

php生成图片的几个问题的相关文章

通过颜色生成图片

/** * 通过颜色生成纯颜色的图片 */ #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end #import "AppDelegate.h" #import "RootViewController.h" @interfa

highcharts 结合phantomjs纯后台生成图片系列二之php2

上篇文章中介绍了phantomjs的使用场景,方法. 本篇文章详细介绍使用php,highcharts 结合phantomjs纯后台生成图片.包含一步步详细的php代码 一.highcharts 结合phantomjs纯后台生成图片系列的准备: 下载phantomjs解析插件,从highcharts官方下载所需插件. 新建一个工程文件夹phantomjs,所必备的js文件有: highcharts 结合phantomjs纯后台生成图片系列二之php 其中jquery.js为 v1.7.1; hi

Apache 文件不存在跳转URL(实现指定尺寸的图片不存在,就自动生成图片)

前言 在做很多系统的时候,我们可能都有这样的需求: 在CMS中只维护一张图片,而这张图片在网站的很多地方都需要显示,而且显示的大小不同. 一般做法就是直接使用这张图片,在不同的地方使用 width 和 height 设定图片的显示大小. 场景需求 一般情况下这样做其实就可以了.如下这个场景,如果通过这样做,可能就不太合适了. 场景:CMS 有个海报管理功能,每个大的海报都是一张 1000*2000px 的图片,而且对海报的清晰度有一定的要求,质量不能太差,假定一个海报有 1MB. 然后在网站上有

IOS Quartz2D 通过UIColor生成图片

普通生成 示例代码: //这里实现普通生成图片的方法 - (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(0, 0, 100, 100); UIGraphicsBeginImageContextWithOptions(cxRect.size, NO, 0); [[UIColor redColor] setFill]; UIRectFill(cxRect); UIImage * image = UIGraphicsGetImageF

highcharts 结合phantomjs纯后台生成图片系列二之php

上篇文章中介绍了phantomjs的使用场景,方法.本篇文章详细介绍使用php,highcharts 结合phantomjs纯后台生成图片. 一.准备: 下载phantomjs解析插件,从 highcharts官方 下载所需插件. 新建一个工程文件夹名位:phantomjs,所必备的js文件有: 其中jquery.js为v1.7.1; highcharts-convert.js的下载地址可去 github上下载 . highcharts官方文档有关于highcharts-convert.js的使

网页生成图片快照

网页生成图片快照 源码地址:https://github.com/juforg/websnapasimg 调用 请求地址 测试环境:http://localhost:7090/htmlsnapshot/snaphtml调用方式 GET 参数名 说明 htmlUrl 需要将response的html进行截图的请求地址,需要URLEncoder.encode(htmlUrl,"UTF-8") imgType 生成图片的类型 如:PNG,GIF,JPG,BMP,RAF 保存返回的图片流 Ht

7.2.3 使用RenderTargetBitmap类生成图片

RenderTargetBitmap类可以将可视化对象转换为位图,也就是说它可以将任意的UIElement以位图的形式呈现.那么我们在实际的编程中通常会利用RenderTargetBitmap类来对UI界面进行截图操作,比如把程序的界面或者某个控件的外观生成一张图片. 使用RenderTargetBitmap类生成图片一般有两种用途,一种是直接把生成的图片在当前的页面上进行展示,还有一种用途是把生成的图片当作文件存储起来,或者通过某种分享方式把图片文件分享出去.那么第二种用途的编程实现肯定是在第

Java绘制图片生成图片文件进行预览

Java绘制图片并实现打印前生成图片文件进行预览, 适用于开发阶段. 如果要使用界面完成预览,请另找资源.这里用这个功能主要是用于结果预览,因为如果使用打印来进行结果验证,会浪费大量的纸张. Java代码: import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;imp

PHP GD 生成图片验证码+session获取储存验证码

下面分享一个PHP制作的图片验证码案例:案例如下图: 运用PHP GD详细请看:http://www.php.net/manual/zh/book.image.php 后台图片代码如下: <?php session_start(); $image = imagecreatetruecolor(100,30);//创建一个宽100,高度30的图片 $bgcolor=imagecolorallocate($image,255,255,255);//图片背景是白色 imagefill($image,0

PHP 生成图片缩略图函数

各位小盆友使用前记得打开 GD 库的支持哦,附上代码. <?php /** * 生成缩略图函数(支持图片格式:gif.jpeg.png和bmp) * @author ruxing.li * @param string $src 源图片路径 * @param int $width 缩略图宽度(只指定高度时进行等比缩放) * @param int $width 缩略图高度(只指定宽度时进行等比缩放) * @param string $filename 保存路径(不指定时直接输出到浏览器) * @re