<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## GD庫簡介 GD指的是Graphic Device,PHP的GD庫是用來處理圖形的擴展庫,通過GD庫提供的一系列API,可以對圖像進行處理或者直接生成新的圖片。 PHP除了能進行文本處理以外,通過GD庫,可以對JPG、PNG、GIF、SWF等圖片進行處理。GD庫常用在圖片加水印,驗證碼生成等方面。 PHP默認已經集成了GD庫,只需要在安裝的時候開啟就行。 ~~~ header("content-type: image/png"); $img=imagecreatetruecolor(100, 100); $red=imagecolorallocate($img, 0xFF, 0x00, 0x00); imagefill($img, 0, 0, $red); imagepng($img); imagedestroy($img); ~~~ ## 繪制線條 要對圖形進行操作,首先要新建一個畫布,通過imagecreatetruecolor函數可以創建一個真彩色的空白圖片: `$img = imagecreatetruecolor(100, 100);` GD庫中對于畫筆所用的顏色,需要通過imagecolorallocate函數進行分配,通過參數設定RGB的顏色值來確定畫筆的顏色: `$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);` 然后我們通過調用繪制線段函數imageline進行線條的繪制,通過指定起點跟終點來最終得到線條。 `imageline($img, 0, 0, 100, 100, $red);` 線條繪制好以后,通過header與imagepng進行圖像的輸出。 ~~~ header("content-type: image/png"); imagepng($img); ~~~ 最后可以調用imagedestroy釋放該圖片占用的內存。 `imagedestroy($img);` 通過上面的步驟,可以發現PHP繪制圖形非常的簡單,但很多時候我們不只是需要輸出圖片,可能我們還需要得到一個圖片文件,可以通過imagepng函數指定文件名將繪制后的圖像保存到文件中。 `imagepng($img, 'img.png');` ## 在圖像中繪制文字 GD庫可以進行多種圖形的基本操作,常用的有繪制線條,背景填充,畫矩形,繪制文字等。 跟繪制線條類似,首先需要新建一個圖片與初始化顏色。 ~~~ $img = imagecreatetruecolor(100, 100); $red = imagecolorallocate($img, 0xFF, 0x00, 0x00); ~~~ 然后使用imagestring函數來進行文字的繪制,這個函數的參數很多:imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ),可以通過$font來設置字體的大小,x,y設置文字顯示的位置,$s是要繪制的文字,$col是文字的顏色。 ~~~ imagestring($img, 5, 0, 0, "Hello world", $red); header("content-type: image/png"); imagepng($img); imagedestroy($img); ~~~ ## 輸出圖像文件 前面我們已經了解到,通過imagepng可以直接輸出圖像到瀏覽器,但是很多時候,我們希望將處理好的圖像保存到文件,以便可以多次使用。通過指定路徑參數將圖像保存到文件中。 ~~~ $filename = 'img.png'; imagepng($img, $filename); ~~~ 使用imagepng可以將圖像保存成png格式,如果要保存成其他格式需要使用不同的函數,使用imagejpeg將圖片保存成jpeg格式,imagegif將圖片保存成gif格式,需要說明的是,imagejpeg會對圖片進行壓縮,因此還可以設置一個質量參數。 ~~~ $filename = 'img.jpg'; ?imagejpeg($img, $filename, 80); ~~~ ## 生成圖像驗證碼 簡單的驗證碼其實就是在圖片中輸出了幾個字符,通過我們前面章節講到的imagestring函數就能實現。 但是在處理上,為了使驗證碼更加的安全,防止其他程序自動識別,因此常常需要對驗證碼進行一些干擾處理,通常會采用繪制一些噪點,干擾線段,對輸出的字符進行傾斜、扭曲等操作。 可以使用imagesetpixel繪制點來實現噪點干擾,但是只繪制一個點的作用不大,因此這里常常會使用循環進行隨機繪制。 ~~~ for($i=0;$i<50;$i++) { imagesetpixel($im, rand(0, 100) , rand(0, 100) , $black); imagesetpixel($im, rand(0, 100) , rand(0, 100) , $green); } ~~~ ## 給圖片添加水印 給圖片添加水印的方法一般有兩種,一種是在圖片上面加上一個字符串,另一種是在圖片上加上一個logo或者其他的圖片。 因為這里處理的是已經存在的圖片,所以可以直接從已存在的圖片建立畫布,通過imagecreatefromjpeg可以直接從圖片文件創建圖像。 `$im = imagecreatefromjpeg($filename);` 創建圖像對象以后,我們就可以通過前面的GD函數,繪制字符串到圖像上。如果要加的水印是一個logo圖片,那么就需要再建立一個圖像對象,然后通過GD函數imagecopy將logo的圖像復制到源圖像中。 `$logo = imagecreatefrompng($filename);` imagecopy($im, $logo, 15, 15, 0, 0, $width, $height); 當將logo圖片復制到原圖片上以后,將加水印后的圖片輸出保存就完成了加水印處理。 `imagejpeg($im, $filename);`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看