下面小編將
講解PHP如何根據圖片色階不同新增水印,具體如下,歡迎參考,更多訊息請關注
應屆畢業生網。 在使用php程式設計的時候, 很多時候需要對上傳的圖片加水印,來確定圖片版權和出處. 但是,一般情況下加水印的`位置是圖片的右下角, 但是,不同圖片的色階不同,有時候我們 圖片的水印和圖片本身色階相同,就會造成水印不明顯. 下面這段程式碼可以實現自動識別圖片的色階,更加色階差來新增圖片的水印,這樣可以避免水印和圖片色階一樣的弊端. read()){ if($file != '.' && $file != '..'){ if(is_dir($to_dir . '/' . $file)){ mkdir($output_dir . '/' . $file); add_wm_recurse($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $arr); }else{ if(!array_key_exists($to_dir . '/' . $file, $arr)){ continue; } $sub_arr = $arr[$to_dir . '/' . $file]; if($sub_arr){ $x = intval($sub_arr[0]); $y = intval($sub_arr[1]); add_wm($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $x, $y); } } } } $dp->close(); } $to_dir = './resized'; $output_dir = './output'; // 這個是我用java的ImageIO遍歷圖片畫素獲取的符合褲子顏色的區域的座標array(posX, posY) $arr = array( array(50, 50) ); $water = './water.png'; $nmw_water =NewMagickWand(); MagickReadImage($nmw_water, $water); add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr); DestroyMagickWand($nmw_water); ?> 補充: PHP影象處理模組 MagickWand用法 MagickWand 是一個PHP的模組,用來訪問 ImageMagick 的影象處理庫。下面是一個使用 MagicWand 的程式碼片段: $magick_wand=NewMagickWand(); MagickReadImage($magick_wand,'rose.jpg'); $drawing_wand=NewDrawingWand(); DrawSetFont($drawing_wand,"/usr/share/fonts/bitstream-vera/"); DrawSetFontSize($drawing_wand,20); DrawSetGravity($drawing_wand,MW_CenterGravity); $pixel_wand=NewPixelWand(); PixelSetColor($pixel_wand,"white"); DrawSetFillColor($drawing_wand,$pixel_wand); if (MagickAnnotateImage($magick_wand,$drawing_wand,0,0,0,"Rose") != 0) { MagickEchoImageBlob( $magick_wand ); } else { echo MagickGetExceptionString($magick_wand); } ?>
安裝方法: 1. 下載 php_magickwand_q16_ for 5.2.x 2. 將其放在PHP的擴充套件目錄 3. 在檔案總增加 extension=php_magickwand_q16_ 4. 重新啟動apache 希望本文所述對大家的php程式設計有所幫助。