您的位置:

php中面向对象的图片处理类(php中面向对象的图片处理类型是什么)

本文目录一览:

什么是PHP

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。2004年7月,PHP5正式版本的发布,标志着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。

在不断更新的同时,PHP5依然保留对旧有的PHP4程序可以运行于PHP5的平台上而不会出现较大问题。随着MySQL数据库的发展,PHP5还绑定了新的MySQLi扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的Web项目的执行速度。

另外,PHP5中还改进了创建动态图片的功能,目前能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,因此安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。

大多数Web程序开发者依然将XML作为一个彻底的简单数据库使用。PHP5中也采用了一系列简单易用、功能强大的方法处理XML文档。

今天,已经有包括Yahoo.com和Amazon.com,,百度等在内的数百万网站,以及众多的开发人员和编程爱好者正在使用PHP。

PHP 图片处理

图片路径一定要基于当前php运行所在的路径去写,./图片 是当前目录,../图片 是上级目录,注意规范

用PHP面向对象写出如下图片的功能

index.php页面:

html

head

title图形计算器(面向对象)/title

meta http-equiv="Content-Type" content="text/html;charset=utf-8"

/head

body

center

h1图形(面积 周长)计算器)h1

a href="index.php?action=rect"矩形/a|| //action 是动作提交

a href="index.php?action=triangle"三角形/a||

a href="index.php?action=circle"圆形/a

hr

/center

?php

error_reporting(E_ALL ~E_NOTICE);

function __autoload($className)

{

include strtolower($className).".class.php";

}

echo new Form();

if(isset($_POST["sub"])){

echo new Result();

}

?

/body

/html

form.class.php页面: //文件名习惯全小写

?php

class Form{

private $action;

private $shape;

function __construct($action="index.php"){

$this-action = $action;

$this-shape = isset($_REQUEST["action"]) ? $_REQUEST["action"]:"rect";

}

function __toString(){

$form='form action="'.$this-action.'" method="post"';

switch($this-shape){

case"rect":

$form.=$this-getRect();

break;

case"triangle":

$form.=$this-getTriangle();

break;

case"circle":

$form.=$this-getcircle();

break;

default:

$form.='请选择一个形状';

}

$form.='input type="submit" name="sub" value="计算"';

$form.='/form';

return $form;

}

private function getRect(){

$input='b请输入|矩形|的长和宽:/bp';

$input.='宽度:input type="text" name="width" value="'.$_POST['width'].'"br';

$input.='高度:input type="test" name="height" value="'.$_POST['height'].'"br';

$input.='input type="hidden" name="action" value="rect"';

return $input;

}

private function getTriangle(){

$input='b请输入|三角形|的三边:/bp';

$input='b请输入|三角形|的三边:/bp';

$input.='第一边:input type="text" name="side1" value="'.$_POST['side1'].'"br';

$input.='第二边:input type="test" name="side2" value="'.$_POST['side2'].'"br';

$input.='第三边:input type="test" name="side3" value="'.$_POST['side3'].'"br';

$input.='input type="hidden" name="action" value="triangle"';

return $input;

}

private function getCircle(){

$input='b请输入|圆形|的半径:/bp';

$input.='半径:input type="text" name="radius" value="'.$_POST['radius'].'"br';

$input.='input type="hidden" name="action" value="circle"';

return $input;

}

}

?

shape.class.php页面:

?php

abstract class shape{

public $shapeName;

abstract function area();

abstract function perimeter();

protected function validate($value,$message="形状"){

if($value == "" ||!is_numeric($value)||$value 0){

echo 'font color="red"'.$message.'必须为非负值的数字,并且不能为空/fontbr';

return false;

} else{

return true;

}

}

}

?

rect.class.php页面

?php

class Rect extends Shape{

private $width=0;

private $height=0;

function __construct(){

$this-shapeName="矩形";

if($this-validate($_POST["width"],'矩形的宽度') $this-validate($_POST["height"],'矩形的高度'))

{

$this-width=$_POST["width"];

$this-height=$_POST["height"];

}else{exit;}

$this-width=$_POST["width"];

$this-height=$_POST["height"];

}

function area(){

return $this-width*$this-height;

}

function perimeter(){

return 2*($this-width+$this-height);

}

}

?

triangle.class.php页面:

?php

class Triangle extends Shape{

private $side1=0;

private $side2=0;

private $side3=0;

function __construct(){

$this-shapeName="三角形";

if($this-validate($_POST['side1'],'三角形的第一边')){

$this-side1=$_POST["side1"];

if($this-validate($_POST['side2'],'三角形的第一

边')){

$this-side2=$_POST["side2"];

if($this-validate($_POST['side3'],'三角形的第一

边')){

$this-side3=$_POST["side3"];

}

$this-side1=$_POST["side1"];

$this-side2=$_POST["side2"];

$this-side3=$_POST["side3"];

}

if(!$this-validateSum()){

echo 'font color="red"三角形的两边之和必须大于第三边

/font';

exit;

}

//海伦公式

function area(){

$s=($this-side1+$this-side2+$this-side3)/2;

return sqrt( $s*($s-$this-side1)*($s-$this-side2)*($s-$this-side3));

}

function perimeter(){

return $this-side1+$this-side2+$this-side3;

}

private function validateSum(){

$condition1=($this-side1+$this-side2) $this-side3;

$condition2=($this-side1+$this-side3) $this-side2;

$condition3=($this-side2+$this-side3) $this-side1;

if($condition1 $$ $condition2 $$ $condition3){

return true;

} else{return false;}

}

}

?

circle.class.php界面:

?php

class Circle extends Shape{

private $radius=0;

function __construct(){

$this-shapeName="圆形";

if($this-validate($_POST['radius'],'圆的半径')){

$this-radius.$_POST["radius"];

}else{exit;}

$this-radius=$_POST["radius"];

}

function area(){

return pi()*$this-radius*$this-radius;

}

function perimeter(){

return 2*pi()*$this-radius;

}

}

?

result.class.php界面:

?php

class Result{

private $shape;

function __construct(){

switch($_POST['action']){

case 'rect':

$this-shape=new Rect();

break;

case 'triangle':

$this-shape=new Triangle();

break;

case 'circle':

$this-shape=new Circle();

break;//没有break会导致default的执行

default:

$this-shape=false;

}

}

function __toString(){

if($this-shape){

$result=$this-shape-shapeName.'的周长'.$this-shape-perimeter().'br';

$result.=$this-shape-shapeName.'的面积'.$this-shape-area().'br';

return $result; }

else{

return'没有这个形状';

}

}

}

?

php有哪些优势和特点

PHP的优势包括:

PHP开放的源代码

所有的PHP源代码事实上都可以得到。

PHP是免费的

和其它技术相比,PHP本身免费且是开源代码。

快捷性

程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。

跨平台性强

由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS下。

效率高

PHP消耗相当少的系统资源。

图像处理

用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用image magick进行图像处理。

面向对象

在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。

专业专注

PHP支持脚本语言为主,同为类C语言,容易入门。

PHP图像处理函数有哪些

php图像处理函数大全

php图片处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等。需要的朋友可以参考下

一、创建图片资源

imagecreatetruecolor(width,height);

imagecreatefromgif(图片名称);

imagecreatefrompng(图片名称);

imagecreatefromjpeg(图片名称);画出各种图像

imagegif(图片资源,保存路径);

imagepng()

imagejpeg();

二、获取图片属性

imagesx(res//宽度

imagesy(res//高度

getimagesize(文件路径)

返回一个具有四个单元的数组。索引

0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 =

PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10

= JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的

IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG

标记。

销毁图像资源

imagedestroy(图片资源);

三、透明处理

PNG、jpeg透明色都正常,只有gif不正常

imagecolortransparent(resource

image [,int

color])//将某个颜色设置成透明色

imagecolorstotal()

imagecolorforindex();

四、图片的裁剪

imagecopyresized()

imagecopyresampled();

五、加水印(文字、图片)

字符串编码转换string iconv ( string $in_charset ,

string $out_charset , string $str )

六、图片旋转

imagerotate();//制定角度的图片翻转

七、图片的翻转

沿X轴 沿Y轴翻转

八、锐化

imagecolorsforindex()

imagecolorat()