
本文操作环境:windows7系统、PHP7.1版、DELL G3电脑
php 图像怎么转换成字符串?
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视频教程》
以上就是php 图像怎么转换成字符串的详细内容,更多请关注亿码酷站其它相关文章!
<!–
–>php 图像怎么转换成字符串
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除
转载请注明来源:php 图像怎么转换成字符串
本文永久链接地址:https://www.ymkuzhan.com/45971.html
本文永久链接地址:https://www.ymkuzhan.com/45971.html
下载声明:
本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压; 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版! 版权声明:
下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。 免责声明:
您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!


