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()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/312620.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-06 09:47
下一篇 2025-01-06 09:47

相關推薦

  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

    編程 2025-04-29
  • Python中的Bool類型判斷

    本篇文章旨在講解Python中的Bool類型判斷。在Python中,Bool類型是經常使用的一種類型,因此掌握其用法非常重要。 一、True和False 在Python中,True…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Python函數類型有哪些

    本文將從以下幾個方面詳細闡述Python函數類型。 一、內置函數 Python的內置函數是指在Python編程語言中提供的可以直接使用的函數,不需要通過導入模塊等方式引入。 部分常…

    編程 2025-04-29
  • Python中的整數類型int類總覽

    本文將從多個方面,對Python中的整數類型int類進行全面介紹和闡述。 一、數據類型及基本操作 在Python中,整數類型的數據類型為int。在Python3.x中,整數類型的范…

    編程 2025-04-28
  • Python變量類型用法介紹

    Python是一種解釋型編程語言,它提供了豐富的數據類型,包括數字、字符串、列表、元組、集合、字典等。Python變量類型的定義是Python程序開發的基礎,本文將從以下幾個方面對…

    編程 2025-04-28

發表回復

登錄後才能評論