Home php教程 php手册 第十四章 处理图像

第十四章 处理图像

Jun 13, 2016 am 09:37 AM
aspnet software programming

 

学习要点:
1.创建图像
2.简单小案例

 

      在PHP5 中,动态图象的处理要比以前容易得多。PHP5 在php.ini 文件中包含了GD 扩
展包,只需去掉GD 扩展包的相应注释就可以正常使用了。PHP5 包含的GD 库正是升级的
GD2 库,其中包含支持真彩图像处理的一些有用的JPG 功能。
      一般生成的图形,通过PHP 的文档格式存放,但可以通过HTML 的图片插入方式SRC
来直接获取动态图形。比如,验证码、水印、微缩图等。

 

一.创建图像

创建图像的一般流程:
1).设定标头,告诉浏览器你要生成的MIME 类型。
2).创建一个图像区域,以后的操作都将基于此图像区域。
3).在空白图像区域绘制填充背景。
4).在背景上绘制图形轮廓输入文本。
5).输出最终图形。
6).清除所有资源。
7).其他页面调用图像。

 

设定标头指定MIME 输出类型

<?<span php
</span><span header</span>('Content-Type: image/png'<span );
</span>?>
Copy after login

创建一个空白的图像区域

<?<span php
</span><span $im</span> = imagecreatetruecolor(200,200<span );
</span>?>
Copy after login

在空白图像区域绘制填充背景

<?<span php
</span><span $blue</span> = imagecolorallocate(<span $im</span>,0,102,255<span );
imagefill(</span><span $im</span>,0,0,<span $blue</span><span );
</span>?>
Copy after login

在背景上绘制图形轮廓输入文本

<?<span php
</span><span $white</span> = imagecolorallocate(<span $im</span>,255,255,255<span );
imageline(</span><span $im</span>,0,0,200,200,<span $white</span><span );
imageline(</span><span $im</span>,200,0,0,200,<span $white</span><span );
imagestring(</span><span $im</span>, 5, 80, 20, "Mr.Lee", <span $white</span><span );
</span>?>
Copy after login

输出最终图形

<?<span php
imagepng(</span><span $im</span><span );
</span>?>
Copy after login

清除所有资源

<?<span php
imagedestroy(</span><span $im</span><span );
</span>?>
Copy after login

其他页面调用创建的图形

<span <</span><span img </span><span src</span><span ="Demo4.php"</span><span  alt</span><span ="PHP 创建的图片"</span> <span /></span>
Copy after login

二.简单小案例

简单验证码

<?<span php
</span><span header</span>('Content-type: image/png'<span );
</span><span for</span>(<span $Tmpa</span>=0;<span $Tmpa</span><4;<span $Tmpa</span>++<span ){
    </span><span $nmsg</span>.=<span dechex</span>(<span rand</span>(0,15<span ));
}
</span><span $im</span> = imagecreatetruecolor(75,25<span );
</span><span $blue</span> = imagecolorallocate(<span $im</span>,0,102,255<span );
</span><span $white</span> = imagecolorallocate(<span $im</span>,255,255,255<span );
imagefill(</span><span $im</span>,0,0,<span $blue</span><span );
imagestring(</span><span $im</span>,5,20,4,<span $nmsg</span>,<span $white</span><span );
imagepng(</span><span $im</span><span );
imagedestroy(</span><span $im</span><span );
</span>?>
Copy after login

加载已有的图像

<?<span php
</span><span header</span>('Content-Type:image/png'<span );
</span><span define</span>('__DIR__',<span dirname</span>(<span __FILE__</span>).'\\'<span );
</span><span $im</span> = imagecreatefrompng(__DIR__.'222.png'<span );
</span><span $white</span> = imagecolorallocate(<span $im</span>,255,255,255<span );
imagestring(</span><span $im</span>,3,5,5,'http://www.yc60.com',<span $white</span><span );
imagepng(</span><span $im</span><span );
imagedestroy(</span><span $im</span><span );
</span>?>
Copy after login

加载已有的系统字体

<?<span php
</span><span $text</span> = <span iconv</span>("gbk","utf-8","李炎恢"<span );
</span><span $font</span> = 'C:\WINDOWS\Fonts\SIMHEI.TTF'<span ;
imagettftext(</span><span $im</span>,20,0,30,30,<span $white</span>,<span $font</span>,<span $text</span><span );
</span>?>
Copy after login

图像微缩

<?<span php
</span><span header</span>('Content-type: image/png'<span );
</span><span define</span>('__DIR__',<span dirname</span>(<span __FILE__</span>).'\\'<span );
</span><span list</span>(<span $width</span>, <span $height</span>) = <span getimagesize</span>(__DIR__.'222.png'<span );
</span><span $new_width</span> = <span $width</span> * 0.7<span ;
</span><span $new_height</span> = <span $height</span> * 0.7<span ;
</span><span $im2</span> = imagecreatetruecolor(<span $new_width</span>, <span $new_height</span><span );
</span><span $im</span> = imagecreatefrompng(__DIR__.'222.png'<span );
imagecopyresampled(</span><span $im2</span>, <span $im</span>, 0, 0, 0, 0,
<span $new_width</span>, <span $new_height</span>, <span $width</span>, <span $height</span><span );
imagepng(</span><span $im2</span><span );
imagedestroy(</span><span $im</span><span );
Imagedestroy(</span><span $im2</span><span );
</span>?>
Copy after login

 

  注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The combination of Vue.js and ASP.NET provides tips and suggestions for performance optimization and expansion of web applications. The combination of Vue.js and ASP.NET provides tips and suggestions for performance optimization and expansion of web applications. Jul 29, 2023 pm 05:19 PM

The combination of Vue.js and ASP.NET provides tips and suggestions for performance optimization and expansion of web applications. With the rapid development of web applications, performance optimization has become an indispensable and important task for developers. As a popular front-end framework, Vue.js combined with ASP.NET can help us achieve better performance optimization and expansion. This article will introduce some tips and suggestions, and provide some code examples. 1. Reduce HTTP requests The number of HTTP requests directly affects the loading speed of web applications. pass

Ten ways generative AI will change software development Ten ways generative AI will change software development Mar 11, 2024 pm 12:10 PM

Translator | Reviewed by Chen Jun | Chonglou In the 1990s, when people mentioned software programming, it usually meant choosing an editor, checking the code into the CVS or SVN code base, and then compiling the code into an executable file. Corresponding integrated development environments (IDEs) such as Eclipse and Visual Studio can integrate programming, development, documentation, construction, testing, deployment and other steps into a complete software development life cycle (SDLC), thus improving the work of developers. efficiency. In recent years, popular cloud computing and DevSecOps automation tools have improved developers' comprehensive capabilities, making it easier for more enterprises to develop, deploy and maintain software applications. Today, generative AI is the next generation development

MySQL connection pool usage and optimization techniques in ASP.NET programs MySQL connection pool usage and optimization techniques in ASP.NET programs Jun 30, 2023 pm 11:54 PM

How to correctly use and optimize the MySQL connection pool in ASP.NET programs? Introduction: MySQL is a widely used database management system that features high performance, reliability, and ease of use. In ASP.NET development, using MySQL database for data storage is a common requirement. In order to improve the efficiency and performance of database connections, we need to correctly use and optimize the MySQL connection pool. This article will introduce how to correctly use and optimize the MySQL connection pool in ASP.NET programs.

How to reconnect to MySQL in ASP.NET program? How to reconnect to MySQL in ASP.NET program? Jun 29, 2023 pm 02:21 PM

How to reconnect to MySQL in ASP.NET program? In ASP.NET development, it is very common to use the MySQL database. However, due to network or database server reasons, the database connection may sometimes be interrupted or time out. In this case, in order to ensure the stability and reliability of the program, we need to re-establish the connection after the connection is disconnected. This article will introduce how to reconnect MySQL connections in ASP.NET programs. To reference the necessary namespaces first, reference them at the head of the code file

The combination of Vue.js and ASP.NET enables the development and deployment of enterprise-level applications The combination of Vue.js and ASP.NET enables the development and deployment of enterprise-level applications Jul 29, 2023 pm 02:37 PM

The combination of Vue.js and ASP.NET enables the development and deployment of enterprise-level applications. In today's rapidly developing Internet technology field, the development and deployment of enterprise-level applications has become more and more important. Vue.js and ASP.NET are two technologies widely used in front-end and back-end development. Combining them can bring many advantages to the development and deployment of enterprise-level applications. This article will introduce how to use Vue.js and ASP.NET to develop and deploy enterprise-level applications through code examples. First, we need to install

How to correctly configure and use MySQL connection pool in ASP.NET program? How to correctly configure and use MySQL connection pool in ASP.NET program? Jun 29, 2023 pm 12:56 PM

How to correctly configure and use MySQL connection pool in ASP.NET program? With the development of the Internet and the increase in data volume, the demand for database access and connections is also increasing. In order to improve the performance and stability of the database, connection pooling has become an essential technology. This article mainly introduces how to correctly configure and use the MySQL connection pool in ASP.NET programs to improve the efficiency and response speed of the database. 1. The concept and function of connection pooling. Connection pooling is a technology that reuses database connections. At the beginning of the program,

Using and optimizing transaction performance of MySQL connection pool in ASP.NET Using and optimizing transaction performance of MySQL connection pool in ASP.NET Jun 30, 2023 pm 12:12 PM

How to correctly use and optimize the transaction performance of MySQL connection pool in ASP.NET programs? In ASP.NET programs, database transactions are a very important part. Transactions ensure the consistency and integrity of the database while also providing better performance. When using a MySQL database, it is essential to use connection pools to manage connection resources and optimize performance. First, let us briefly understand the concept of MySQL connection pool. The connection pool is a buffer pool of a group of connections. By pre-initializing a certain number of

What are the built-in objects in aspnet? What are the built-in objects in aspnet? Nov 21, 2023 pm 02:59 PM

The built-in objects in ASP.NET include "Request", "Response", "Session", "Server", "Application", "HttpContext", "Cache", "Trace", "Cookie" and "Server.MapPath": 1. Request, indicating the HTTP request issued by the client; 2. Response: indicating the HTTP response returned by the web server to the client, etc.

See all articles