<?php
/* 处理图像 */
/*
{php5} 动态图像的处理更容易.
在 php.ini中就包含了GD扩展包, 去掉 其中的注释即可.
extension=php_gd2.dll
其中 包含了 支持真彩图像处理的一些有用的JPG功能. 一般生成的图形, 通过PHP的文档格式存放;
但可以通过HTML的图片插入方式SRC 来直接获取动态图形. 比如: 验证码 / 水印 / 缩略图 ... * */ /* {创建图像}的一般流程:
1. 设定标头.(告诉浏览器你要身材的MIME的类型)
2. 创建 {图像区域}, 后面的操作要基于此图像区域.
* imagecreatetruecolor
一般要加上@符号,避免出错.
* 返回值是一个资源句柄
没有填充的时候,背景是黑色的(默认). * imagecreate 3. 在{图像区域}上,绘制填充背景.
首先, 要有个 {颜色填充器}
imagecolorallocate -- 为一幅图像分配颜色
imagecolorallocatealpha -- 为一幅图像分配颜色 + alpha 然后, 填充整个图像背景
imagefill -- 区域图像填充
imagefilledarc -- 画一椭圆弧且填充
imagefilledellipse -- 画一椭圆并填充
imagefilledpolygon -- 画一多边形并填充
imagefilledrectangle -- 画一矩形并填充 4. 在{背景}上绘制{图形轮廓输入文本}
5. 输出最终 图像.
6. 清除所有资源.
7. 其他页面调用图像. 一般 生成的图像 可以是 png, jpg, gif, bmp,
jpeg, wbmp header("Content-Type:text/html");// 一般网页类型是text/html, 默认不用写 * */ ?> <img src="demo4.php" alt="PHP创建的图像" />

  

<?php
header("Content-Type:image/png");
// 设定 标头 指定MIME类型
$im=imagecreatetruecolor(200, 200);
// 创建 一个 空白的 图像区域 /* 设置一个颜色, 用它填充图像区域的背景*/
$blue=imagecolorallocate($im, 0, 102, 255);
imagefill($im, 0, 0, $blue); /* 在图像轮廓上绘制文本 */
// 白色文字
// 白色
$white=imagecolorallocate($im, 255, 255, 255);
// 画两条对角线
imageline($im, 0, 0, 200, 200, $white);
imageline($im, 200, 0, 0, 200, $white);
imagestring($im, 5, 80, 20, "Mr.Lee", $white); /* 输出 最终的图像 */
imagepng($im); /* 清除所有的占用 资源 */
imagedestroy($im); // 其他页面就可以调用此页面创建的图像了
?>

  

<?php
header("Content-Type:image/png");
/*产生随机数字符串*/
$nmsg="";
for ($i=0; $i < 4; $i++) { // 4位的随机数
$nmsg.=dechex(rand(0,15));
}
// echo $nmsg;
// 准备图像
$im=imagecreatetruecolor(75,25);// 一般的,一个数字高25
$blue=imagecolorallocate($im, 0, 102, 255);
$white=imagecolorallocate($im, 255, 255, 255); // 填充图像内容
imagefill($im, 0, 0, $white);
imagestring($im, 5, 20, 4, $nmsg, $blue); /*输出图像,并销毁被使用的资源*/
imagepng($im);
imagedestroy($im); ?>

  

<?php
header("Content-Type:image/jpg");
/*给图像添加一个水印*/ $im=imagecreatefromjpeg("2.jpg"); $white=imagecolorallocate($im, 255, 255, 255); imagestring($im, 15, 10, 10, "This is a picture!", $white); // imagettftext($im, 5, 0, 10, 100, $white, "simsun.ttf", "阳光都是中文"); imagejpeg($im);
imagedestroy($im); ?>

  

<?php
ob_clean();//如果输出的图像不显示, 那就在这里清除输出缓冲区
header("Content-type:image/png"); $im=imagecreatetruecolor(200, 200); $white=imagecolorallocate($im, 255, 255, 255);
$blue=imagecolorallocate($im, 0, 102, 255); imagefill($im, 0, 0, $blue); // $text=iconv("gbk", "utf-8", "鎷夋柉鐨勭鏋楄垂鏂�");
$font="C:\\Windows\\Fonts\\consola.ttf"; imagettftext($im, 20, 45, 20, 100, $white, $font, "hello");/*这里的第四第五个参数,用来显示位置,注意不要用0,否则找不到输出的文本内容*/ imagestring($im, 10, 0, 5, "This is a boy.", $white); imagepng($im);
imagedestroy($im); ?>

  

<?php
ob_clean();//如果输出的图像不显示, 那就在这里清除输出缓冲区
header("Content-type:image/png"); $im=imagecreatetruecolor(200, 200); $white=imagecolorallocate($im, 255, 255, 255);
$blue=imagecolorallocate($im, 0, 102, 255); imagefill($im, 0, 0, $blue); // $text=iconv("gbk", "utf-8", "鎷夋柉鐨勭鏋楄垂鏂�");
$font="C:\\Windows\\Fonts\\simsun.ttc"; imagettftext($im, 20, 45, 20, 100, $white, $font, "hello");
/* imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text) *//*这里的第四$x第五$y个参数,用来显示位置,注意不要用0,否则找不到输出的文本内容*/ imagestring($im, 10, 0, 5, "This is a boy.", $white); $text="这是中文的";
// $text=iconv("utf-8", "utf-8", "这是中午的");
imagettftext($im, 25, 0, 20, 150, $white, $font, $text);
/* 这个中文的输出是正确的.{现在文件编码是utf8,html嵌入文件输出的文字编码是utf8} */ imagepng($im);
imagedestroy($im); ?>

  

<?php
/* 说说怎么用eclipse的问题 */
/*
* 首先是界面: 有用的就是编辑器部分和项目管理器(其他的都关闭吧)
*
* 其次: 新建项目的问题.
* 首先了最好把工作区放到你的文件夹根目录;然后,每个新建的项目只要设置好项目名,让epp自动生成文件夹就行了.
*
*
* */ // 下面将会练习微缩图 // echo __DIR__; list($w,$h)=getimagesize("2.jpg");
$nw=$w*0.7;
$nh=$h*0.7;
$im_src=imagecreatefromjpeg("2.jpg");
$im=imagecreatetruecolor($nw, $nh);
imagecopyresampled($im, $im_src, 0, 0, 0, 0, $nw, $nh, $w, $h); ob_clean();
header("Content-type:image/png");
imagepng($im);
// imagepng($im_src);
imagedestroy($im);
imagedestroy($im_src); ?>

  

[php] 处理图像的更多相关文章

  1. C#中如何调整图像大小

    在本篇文章中,我将介绍如何在C#中来调整你想要的图像大小.要实现这一目标,我们可以采取以下几个步骤: 1.首先要获取你想要调整大小的图像: string path = Server.MapPath(& ...

  2. 基于window7+caffe实现图像艺术风格转换style-transfer

    这个是在去年微博里面非常流行的,在git_hub上的代码是https://github.com/fzliu/style-transfer 比如这是梵高的画 这是你自己的照片 然后你想生成这样 怎么实现 ...

  3. 超全面的.NET GDI+图形图像编程教程

    本篇主题内容是.NET GDI+图形图像编程系列的教程,不要被这个滚动条吓到,为了查找方便,我没有分开写,上面加了目录了,而且很多都是源码和图片~ (*^_^*) 本人也为了学习深刻,另一方面也是为了 ...

  4. git图像化界面GUI的使用

    GIT学习笔记 一.        基础内容 1.git是一个版本控制软件,与svn类似,特点是分布式管理,不需要中间总的服务器,可以增加很多分支. 2.windows下的git叫msysgit,下载 ...

  5. CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

    CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能 效果图 这是红宝书里的例子,在这个例子中,下述功能全部登场,因此这个例子可作为使用Compute Shader的典型 ...

  6. 【.net深呼吸】WPF异步加载大批量图像

    如何在WPF中加载大批量数据,并且不会阻塞UI线程,尤其是加载大量图片时,这活儿一直是很多朋友都相当关注的.世上没有最完美的解决之道,咱们但求相对较优的方案. 经过一些试验和对比,老周找到了一种算是不 ...

  7. 了解HTML图像

    img <img>表示image图像,从技术上讲,<img>标签并不会在网页中插入图像,而是从网页上链接图像.<img> 标签创建的是被引用图像的占位空间. [必须 ...

  8. 四种比较简单的图像显著性区域特征提取方法原理及实现-----> AC/HC/LC/FT。

    laviewpbt  2014.8.4 编辑 Email:laviewpbt@sina.com   QQ:33184777 最近闲来蛋痛,看了一些显著性检测的文章,只是简单的看看,并没有深入的研究,以 ...

  9. 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting

    一.序言   陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的.除了利用和Photoshop中的魔棒一样的技术或者 ...

  10. 如何快速清除ZBrush画布中多余图像

    ZBrush是一款数字雕刻与绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业.它的简洁化.智能化和人性化的设计无不让众多用户所折服.刚接触它的用户可能会因为找不到相关命令或不熟悉而觉得它 ...

随机推荐

  1. shell 统计GMT0 时区的数据

    和某个供应商核对数据,对方是GMT+0时区,我方报表默认北京时间,无法修改为GMT0, 对excel中按照小时级别的数据导出到excel处理,然后转为文本文件,shell转为GMT0进行统计: 前期处 ...

  2. rank 和 星星评级

    我们常常看到打分,如下图 这样的效果有几种方法 1.用:lt(index) /* $('dl').each(function(){ var ths = $(this); $(this).find('d ...

  3. Linux命令行–更多bash shell命令(转)

    4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...

  4. JBOSS安全配置

    1.jmx-console登录的用户名和密码设置 默认情况访问http://localhost:8080/jmx-console就可以浏览jboss的部署管理的一些信息,不需要输入用户名和密码,使用起 ...

  5. Hibernate三种状态的转换

    hibernate的状态 hibernate的各种保存方式的区(save,persist,update,saveOrUpdte,merge,flush,lock)及 对象的三种状态 hibernate ...

  6. MVC项目实践,在三层架构下实现SportsStore-09,ASP.NET MVC调用ASP.NET Web API的查询服务

    ASP.NET Web API和WCF都体现了REST软件架构风格.在REST中,把一切数据视为资源,所以也是一种面向资源的架构风格.所有的资源都可以通过URI来唯一标识,通过对资源的HTTP操作(G ...

  7. nagios监控linux主机监控内存脚本

    说明 工作包括两部分监控端(一二三)和被监控端(四) 一.nrpe.cfg中添加脚本 nrpe.cfg中添加命令索引 command[check_used_mem]=/usr/local/nagios ...

  8. InitializingBean afterPropertiesSet

    package org.test.InitializingBean; import org.springframework.context.support.ClassPathXmlApplicatio ...

  9. Exchanger示例

    Exchanger有两个用户,当一(A)方调用exchange方法之后,就开始等待,直到另一(B)方开始调用exchange方法.两个exchange可以认为是原子性的. public class C ...

  10. django上传下载大文件

    上传 def upFile(file): upload_dir = '/tmp/upload/%s' % username if request.method == 'POST': upload_fi ...