您好,登錄后才能下訂單哦!
這篇文章主要介紹了php圖像如何轉換成字符串,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
php圖像轉換成字符串的方法:1、安裝php_imagick擴展;2、通過“function img2str($img_src,$width_index,$height_index){...}”方法將圖像轉換成字符串即可。
本文操作環境:windows7系統、PHP7.1版、DELL G3電腦
php將image圖片轉化為字符串(GD庫操作及imagick兩種實現方式)
前兩天研究php中的 imagick 擴展的時候,突發奇想實現的一個小功能感覺挺有意思,在這里記錄一下:
將一張image圖片轉化為字符串的形式,先上一張效果圖。(運行筆記中的代碼需要先安裝 php_imagick 擴展 教程可以看這里:PHP擴展之 Imagick安裝)
原圖:
<?php /** * 圖片轉換為字符圖 * @param string $imagePath 圖片地址 * @param int $width x軸方向縮放比例 * @param int $height y軸方向縮放比例 * @return string 生成的字符串圖 */ function img2String($imagePath,$width=1,$height=1) { //檢查是否安裝 php_imagick 擴展 if(!extension_loaded("imagick")){ exit("請先安裝 imagick 模塊"); } $imagick = new \Imagick(realpath($imagePath)); //將生成的imagick對象轉化為一個像素迭代器,可以從該迭代器中獲取沒個像素的 rgb 的值。不知道什么是rgb的請問度娘 $imageIterator = new \ImagickPixelIterator($imagick); $str='O80GCLft*+;:,. '; foreach ($imageIterator as $rows => $pixels) { if($rows%$width == 1 || $width == 1){ echo "\n"; foreach ($pixels as $column => $pixel) { if($column%$height == 1 || $height == 1){ //灰度計算公式 某個像素點的灰度值 = 紅色值*0.3 + 綠色值 * 0.59 + 藍色值 * 0.11 $gray = $pixel->getColor()['r']*0.3 + $pixel->getColor()['g']*0.59 + $pixel->getColor()['b']*0.11; //由于 rgb 三原色的數值范圍在 [0,255] 所以求出的灰度值的范圍也是 [0,255],所以我們計算像素的 "飽和度" = 灰度值/255; $r = $gray/255; //根據像素的 "飽和度" 選擇合適的字符 $offset=(int)ceil($r*(strlen($str)-1)); if($offset==(strlen($str)-1)){ echo " "; }else{ echo $str[$offset]; } } } $imageIterator->syncIterator(); } } } img2String('huawei.jpg',2,1);
復制代碼
/** * 圖片轉為字符串 * @param string $img_src 圖片地址 * @param int $width_index 橫向縮放比例 * @param int $height_index 縱向縮放比例 * @return string 生成的字符串 **/ function img2str($img_src,$width_index,$height_index){ $resource = imagecreatefromjpeg($img_src); $width = imagesx($resource); $height = imagesy($resource); imagefilter($resource, IMG_FILTER_GRAYSCALE); for ($i=0; $i < $height; $i++) { if($i%$height_index==0){ for ($j=0; $j < $width; $j++) { if($j%$width_index==0){ $color_index = imagecolorat($resource, $j, $i); $rgb = imagecolorsforindex($resource,$color_index); $gray = $rgb['red']; $str='O80GCLft*+;:,. '; $r = $gray/255; $offset=(int)ceil($r*(strlen($str)-1)); echo $str[$offset]; } } echo "\n"; } } } img2str("./huawei.jpg",1,2);
感謝你能夠認真閱讀完這篇文章,希望小編分享的“php圖像如何轉換成字符串”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。