php數學函數和創建圖像五步,六個基礎函數圖像

本文目錄一覽:

PHP動態圖像的創建要如何實現

可以使用圖像創建函數對圖像進行處理,例如把一個較大圖像作成一個小圖像:

假設你有一幅圖像,想從中裁剪出一個35×35大小的圖像。你所需要作的是創建一個35×35大小的空白圖像,創建一個包含原來圖像的圖像流,然後把一個經過調整大小的原來的圖像放到新的空白圖像中。

要完成這一任務的關鍵函數是ImageCopyResized(),它要求的格式如下所示:

ImageCopyResized([new image handle],[original image handle],[new image X], [new Image Y], [original image X], [original image Y], [new image X], [new image Y], [original image X], [original image Y])。

<? /* 發送一個頭部,以便讓瀏覽器知道該文件所包含的內容類型*/

header(“Content-type: image/png”);

/* 建立保存新圖像高度和寬度的變數*/

$newWidth = 35;

$newHeight = 35;

/* 建立給定高度和寬度的新的空白圖像*/

$newImg = ImageCreate($newWidth,$newHeight);

/* 從原來較大的圖像中得到數據*/

$origImg = ImageCreateFromPNG(“test.png”);

/*拷貝調整大小後的圖像,使用ImageSX()、ImageSY()得到原來的圖像在X、Y方面上的大小 */

ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));

/*創建希望得到的圖像,釋放內存 */

ImagePNG($newImg);

ImageDestroy($newImg); ?>

在php中圖像處理新建一個畫布用什麼函數

$newImage = imagecreatetruecolor($xSize,$ySize);

//增加一個白色的底,不然新建的畫布是黑色的

$white = imagecolorallocate($newImage, 255, 255, 255);

imagefill($newImage, 0, 0, $white);

圖像處理也經常使用到imagecopymerge、getimagesize、imagecreatefromjpeg等函數,建議你看下這個鏈接,全是圖像處理的函數

在PHP中如何正確創建函數

Step 1 =

php的擴展模塊都放在 ext/ 目錄下,比如說 snmp模塊、mysql模塊。 我們要建立自己的模塊,就要在ext目錄下為自己的模塊建一個目錄。比如,我們要做一個分析config文件的模塊,命名為pconfig模塊(parse config的簡寫),需在ext下建立目錄pconfig。將我寫好的7個文件copy到該目錄下,另外需對主目錄下的configure和internal_functions.c作一些修改。

Step 2 =

Makefile.am Makefile.in

是模板文件,用戶執行configure時,會調用這兩個文件,生成編譯時所用的Makefile文件。修改時將小寫的pconfig換成你自己的模塊名,別忘了把大寫的PCONFIG也替換掉(不要告訴我你不會vi的替換語句)。config.m4也是執行configure將會調用的檢測腳本程序,以後我們來討論這些腳本程序的更深入的修改。現在你只需要把pconfig該成你的模塊就可以了。對config.h.stub和setup.stub也如法炮製。其實setup.stub也沒什麼用。

Step 3 =

php3-pconfig.h 頭文件中

extern php3_module_entry pconfig_module_entry;

#define pconfig_module_ptr pconfig_module_entry

#define phpext_pconfig_ptr pconfig_module_ptr

這幾行定義了模塊的入口,將入口註冊到php後,php會通過模塊入口找到你寫的函數

下面幾個函數定義是用宏進行定義的,展開以後其實就是 php3_minit_pconfig , php3_rinit_pconfig ……分別在你的模塊初試化或結束時被調用,如果你的模塊很簡單,也就不需要這些定義了

extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);

這是你的函數聲明,將來寫在php腳本語句中的函數名就是在PHP_FUNCTION中定義的名字。

PHP_FUNCTION(pconfig_test);

如果有多個,還可以繼續往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….

Step 4 =

接下來我們看最重點的C代碼了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定義的是你的函數的入口(前面我們提到過模塊的入口),按照格式將你在頭文件中定義的函數寫進去吧。注意,這是用宏定義的,不要管語法是否正確。以後我們具體討論這些宏的用法。

php3_module_entry pconfig_module_entry = {

“pconfig”, pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

註冊模塊的入口信息,比如模塊名,函數介面,初試化模塊將調用的函數等等,如果你的模塊不執行複雜操作的話,可以忽略掉他們,寫成

php3_module_entry pconfig_module_entry = {

“pconfig”, pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =

寫你自己的函數

在頭文件和function_entry處,我們已經定義了自己的函數pconfig_test,現在我們就來實現pconfig_test的功能。就比如執行兩個數相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ……

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

當系統調用pconfig_test時,會調用你的_php3_pconfig_test函數,當然你也可以把_php3_pconfig_test里的內容直接寫在PHP_FUNCTION(pconfig_test)中,這樣做只是程序結構比較清晰。注意:不要將_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展開後實際上就是php3_pconfig_test!

Step 6 =

好了,現在我們開始修改configure,在echo $ac_n “checking for MySQL support””… $ac_c” 16的前面(當然,如果你熟悉configure的話,可以加在任何合適的地方)加上下面幾句話

if test “${with_pconfig+set}” = set; then

withval=”$with_pconfig”

# Add your lib in here

EXTRA_LIBS=”$EXTRA_LIBS”

# Add your include path in here

INCLUDES=”$INCLUDES”

EXT_SUBDIRS=”$EXT_SUBDIRS pconfig”

EXT_LIBS=”$EXT_LIBS pconfig/libphpext_pconfig.a”

EXTINFO_DEPS=”$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub”

EXT_STATIC=”$EXT_STATIC pconfig”

fi

修改internal_functions.c,在頭文件定義中加入#include “ext/pconfig/php3_pconfig.h”

在zend_module_entry數組中加入phpext_pconfig_ptr,

Step 7 =

從新configure,帶上需要的參數,不要忘記的是在參數里加入 –with-pconfig

Step 8 =

index.php3

? echo pconfig_test(123,678).”

“; ?

執行%php index.php3

810

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

學習PHP需要掌握哪些東西?

3、工具:必須至少熟練使用一種IDE的開發工具,例如:Eclipse、Netbeans、zend或者editplus,ultraedit,包括進行工程管理、常用選項的設置、PHP插件的安裝配置以及進行調試。4、API:PHP的核心API是非常龐大的,但是有一些內容筆者認為是必須熟悉的,否則不可能熟練的運用PHP,包括:◆ 文件目錄處理函數包80%以上的函數的功能的靈活運用。◆ 日期時間函數中的80%以上的函數的功能的靈活運用◆ 數學函數庫中的100%的內容。◆ 網路庫中的60%以上的內容,對各個函數的功能比較熟悉。◆ 字元串處理函數下的60%以上的內容,特別是各種處理函數。◆ 正則表達式函數下的90%以上的內容,特別是各種正則處理◆ 一些安全庫下的40%以上的內容,如果對於安全沒有接觸的話根本就不可能掌握PHP◆ XML處理,熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理。◆ 圖形圖像函數庫下的80%以上的內容,特別是一些圖像生成和處理◆ MySQL 資料庫函數下的90%以上的內容,特別是處理各種數據的函數◆ 數組處理函數下的90%以上的內容,特別是各種操作處理函數◆ 其它PEAR,PECL,和一些擴展類庫中的80%以上的內容,特別是一些常用的類的處理◆ 針對不同的需求,查找不同的函數庫。5、測試:必須熟悉使用phpunit編寫測試用例完成代碼的自動測試。6、管理:必須熟悉使用xinc, phing等完成工程管理的常用任務,例如工程編譯、生成phpdoc、生成、版本控制、自動測試。7、排錯:應該可以根據異常信息比較快速的定位問題的原因和大致位置。8、思想:必須掌握OOP的主要要求,這樣使用PHP開發的系統才能是真正的PHP系統。9、規範:編寫的代碼必須符合流行的編碼規範,這樣程序的可讀性才比較好。10、博學:掌握OOA、OOD、MS SQL Server、Oracle 、Zendframework、cakephp、symfony、模板技術等流行技術,掌握軟體架構設計思想、搜索引擎優化、緩存系統設計、網站負載均衡、系統性能調優等實用技術。浮躁的人容易問:PHP和Java,C#,VB.NET哪個好;–告訴你吧,都好–只要你學好就行;浮躁的人容易問:PHP有錢途嗎:–建議你去搶銀行作者:朱志兵

北大青鳥設計培訓:PHP中使用GD庫創建圓形餅圖?

在php中,有一些簡單的圖像函數是可以直接使用的,但大多數要處理的圖像,都需要在編譯PHP時加上GD庫。

除了安裝GD庫之外,在PHP中還可能需要其他的庫,蘭州電腦培訓認為這可以根據需要支持哪些圖像格式而定。

不同的GD版本支持的圖像格式不完全一樣,最新的GD庫版本支持GIF、JPEG、PNG、WBMP、XBM等格式的圖像文件,此外還支持一些如FreeType、Type1等字體庫。

通過GD庫中的函數,可以完成各種點、線、幾何圖形、文本及顏色的操作處理,也可以創建或讀取多種格式的圖像文件。

在PHP中,通過GD庫處理圖像的操作都是先在內存中處理,操作完成以後再以文件流的方式輸出到瀏覽器或保存在伺服器的磁碟中。

創建一個圖像應該完成如下所示4個基本步驟。

①創建畫布:所有的繪圖設計都需要在一個背景圖片上完成,而畫布實際上就是在內存中開闢的一塊臨時區域,用於存儲圖像的信息。

以後的圖像操作都將基於這個背景畫布,該畫布的管理就類似於我們在畫畫時使用的畫布。

②繪製圖像:畫布創建完成以後,就可以通過這個畫布資源,使用各種畫像函數設置圖像的顏色、填充畫布、畫點、線段、各種幾何圖形,以及向圖像中添加文本等。

③輸出圖像:完成整個圖像的繪製以後,需要將圖像以某種格式保存到伺服器指定的文件中,或將圖像直接輸出到瀏覽器上顯示給客戶。

但在圖像輸出之前,一定要使用header()函數發送Content-type通知瀏覽器,這次發送的是圖片不是文本。

④釋放資源:圖像被輸出以後,畫布中的內容也不再有用。

出於節約系統資源的考慮,需要及時清楚畫布佔用的所有內存資源。

我們先來了解一下一個非常簡單的創建圖像腳本。

在下面的腳本文件image.php中,按前面介紹的繪製圖像的四個步驟,使用GD庫動態輸出一個扇形統計圖。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 17:12
下一篇 2024-12-12 17:12

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

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

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

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論