php将图片转换成黑白图片

简述:

使用php的GD库可以将图片转换为黑白图片,利用的内置函数有:

  1. getimagesize:获取图片的信息,包括宽高、mime类型等信息;
  2. imagecolorat:获取图片每个位置的RGB值
  3. imagecolorallocate:为图片分配颜色
  4. imagesetpixel:在图片的指定坐标处绘制像素
完整代码:
/**
* 转黑白图片
* @param  string $sourceImg 要转换的图片路径
* @param  string $filePath  最终保存的图片路径
* @return [type]            [description]
*/
function createImg($sourceImg,$filePath) {
   list($width, $height, $type, $attr) = getimagesize($sourceImg);
   $imageinfo = array(
       'width'  => $width,
       'height' => $height,
       'type'   => image_type_to_extension($type, false),
       'attr'   => $attr,
   );
   $fun = "imagecreatefrom" . $imageinfo['type'];

   $image = $fun($sourceImg);
   $img_width = $width;
   $img_height = $height;
   for($i=0;$i<$img_height;$i++){
   	for($k=0;$k<$img_width;$k++){
           // 获取图片每个位置的RGB值
   		$gray = (imagecolorat($image,$k,$i)>>8)&0xFF;
           // 在指定坐标处绘制像素
   		imagesetpixel($image, $k, $i, imagecolorallocate($image, $gray,$gray,$gray));
   	}
   }
   $funcs = "image" . $imageinfo['type'];
   // 保存图片
   // 注意第三个参数为压缩级别,从0~9
   $res = $funcs($image, $filePath, 6);
   imagedestroy($image);
   return $res;
}
功能演示:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值