>  기사  >  백엔드 개발  >  PHP에서 이미지의 역색상 처리를 구현하는 단계에 대한 자세한 설명

PHP에서 이미지의 역색상 처리를 구현하는 단계에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-05-19 11:38:471847검색

이번에는 PHP에서 이미지의 역색상 처리를 수행하는 단계에 대해 자세히 설명하겠습니다. PHP에서 이미지의 역색상 처리를 구현할 때 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

오늘은 PHP를 사용하여 이미지의 색상을 반전시키고 회색으로 변환해야 했습니다. 이전에는 이것이 가능한지 몰랐지만 imagefilter() 함수를 보았는데, 이는 변환하기에 충분했습니다.

imagefilter($im, IMG_FILTER_GRAYSCALE)

물론 일부 사람들은 CSS에서 변경 사항을 설정하기도 합니다. Gray

<style type="text/css">
img {
-webkit-filter: grayscale(1);/* Webkit */
filter:gray;/* IE6-9 */
filter: grayscale(1);/* W3C */
}
</style>

php 색상 전송 코드:

<?php
/**
* 主要用于图片的处理函数
*/
//图片的反色功能
function color($url) {
  //获取图片的信息
    list($width, $height, $type, $attr)= getimagesize($url);
    $imagetype = strtolower(image_type_to_extension($type,false));
    $fun = 'imagecreatefrom'.($imagetype == 'jpg'?'jpeg':$imagetype);
    $img = $fun($url);
    for ($y=0; $y < $height; $y++) {
      for ($x=0; $x <$width; $x++) {
        //获取颜色的所以值
        $index = imagecolorat($img, $x, $y);
        //获取颜色的数组
        $color = imagecolorsforindex($img, $index);
        //颜色值的反转
        $red = 256 - $color['red'];
        $green = 256 - $color['green'];
        $blue = 256 - $color['blue'];
        $hex = imagecolorallocate($img, $red, $green, $blue);
        //给每一个像素分配颜色值
        imagesetpixel($img, $x, $y, $hex);
      }
    }
    //输出图片
    switch ($imagetype) {
      case 'gif':
      imagegif($img);
      break;
      case 'jpeg':
      imagejpeg($img);
      break;
      case 'png':
      imagepng($img);
      break;
      default:
      break;
    }
}

테스트 코드:

$imgurl='1.jpg';
echo color($imgurl);

원본 사진 편집자가 일반적으로 사용하는 스푸핑 사진 파괴 예):

실행 후 (여기서는 테스트가 중요합니다. 사진이 삼관을 전복하는지 오감을 전복하는지에 대해 편집자는 많은 것을 묻지 않을 것입니다. ~):

이 기사의 사례를 읽고 나면 방법을 마스터했다고 믿습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

PHP에서 xml을 구문 분석하고 sql 문을 생성하는 단계에 대한 자세한 설명

PHP에서 정규식 그룹 캡처를 구현하는 단계에 대한 자세한 설명

위 내용은 PHP에서 이미지의 역색상 처리를 구현하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.