用PHP製做ASCII化的圖像

用PHP代碼,能夠將gif格式的圖像轉換成具備ASCII字符風格化的png圖像,頗有意思,和你們分享一下效果:php

原圖:html

用PHP製做ASCII化的圖像-行者無疆的圖片

生成後效果
用PHP製做ASCII化的圖像-行者無疆的圖片code

源代碼以下:htm

<?php  
$txt =array('A','B','C','D','E','F','G','H','I','J','K');
//加載原始圖像
$rawImage = ImageCreateFromGIF('test.gif');
//獲取原始圖像寬高
$rawImgWidth = ImagesX($rawImage);
$rawImgHeigh = ImagesY($rawImage);
//獲取原始圖像灰度
$grayData = getGrayData($rawImage,$rawImgWidth,$rawImgHeigh);
//銷燬圖像
ImageDestroy($rawImage);
//建立文字圖像
$txtImage = ImageCreate($rawImgWidth*6,$rawImgHeigh*9);
//新圖像背景色
imagecolorallocate($txtImage,0,0,0);
//獲取最大灰度
for($i=0;$i<count($grayData);$i++){
$maxGrayArray[$i] = max($grayData[$i]);
}
$maxGray = max($maxGrayArray);
//設置灰度對應顏色
for($i=0;$i<$maxGray+1;$i++){
$color = 255-round(200/$maxGray)*$i+55;
$gray[$i] = imagecolorallocate($txtImage,$color,$color,$color);
}
//繪製字符
for($y=0;$y<$rawImgHeigh;$y++){
for($x=0;$x<$rawImgWidth;$x++){
Imagechar($txtImage,1,$x*6,$y*9,$txt[rand(0,10)],$gray[$grayData[$x][$y]]);
}
}
//建立最終圖像
$Image = ImageCreate($rawImgWidth*10,$rawImgHeigh*10);
//拉伸圖像
imagecopyresampled($Image, $txtImage, 0, 0, 0, 0,$rawImgWidth*10,$rawImgHeigh*10,$rawImgWidth*6,$rawImgHeigh*9);
//定義文件頭
header('Content-type: image/png');
//輸出圖像
ImagePNG($Image);
//銷燬圖像
ImageDestroy($Image);
/*
獲取灰度值
*/
}

原文連接:http://www.ldsun.com/656.html 圖片

演示地址:http://a.ldsun.com/get

相關文章
相關標籤/搜索