>  기사  >  백엔드 개발  >  php_imagick을 사용하여 레트로 effect_php 예제를 구현하는 방법

php_imagick을 사용하여 레트로 effect_php 예제를 구현하는 방법

WBOY
WBOY원래의
2016-12-05 13:28:151722검색

소개

php_imagick은 PHP가 ImageMagick 함수를 호출할 수 있게 해주는 PHP 확장입니다. 이 확장을 사용하면 PHP가 ImageMagick과 동일한 기능을 갖게 됩니다.
ImageMagick은 인기 있는 TIFF, JPEG, GIF, PNG, PDF 및 PhotoCD 형식을 포함하여 185개 이상의 기본 형식으로 이미지 파일을 읽고, 쓰고, 처리하는 데 사용할 수 있는 강력하고 안정적인 무료 도구 세트 및 개발 패키지입니다. ImageMagick을 사용하면 웹 애플리케이션의 필요에 따라 이미지를 동적으로 생성할 수 있으며, 크기를 변경하고, 회전하고, 선명하게 하고, 색상을 줄이고, 이미지(또는 이미지 그룹)에 특수 효과를 추가하고 결과를 저장할 수도 있습니다. 같은 형식으로 저장하거나 다른 형식으로 저장하세요.

php_imagick 프로그램 예

1. 썸네일을 생성하고 표시합니다

<&#63;php
header('Content-type: image/jpeg');
$image = new Imagick('image.jpg');
// If 0 is provided as a width or height parameter,// aspect ratio is maintained
$image->thumbnailImage(100, 0);
echo $image;
&#63;>

2. 디렉토리에 썸네일을 생성하고 저장합니다

<&#63;php
$images = new Imagick(glob('images/*.JPG'));
foreach($images as $image) {
// Providing 0 forces thumbnailImage to maintain aspect ratio
$image->thumbnailImage(1024,0);
}
$images->writeImages();
&#63;>

3. 썸네일 GIF 애니메이션 사진

<&#63;php
/* Create a new imagick object and read in GIF */
$im = new Imagick("example.gif");
/* Resize all frames */
foreach ($im as $frame) {
/* 50x50 frames */
$frame->thumbnailImage(50, 50);
/* Set the virtual canvas to correct size */
$frame->setImagePage(50, 50, 0, 0);
}/* Notice writeImages instead of writeImage */
$im->writeImages("example_small.gif", true);
&#63;>

복고풍 효과를 얻기 위해 php_imagick을 사용하는 방법

먼저 렌더링을 살펴보겠습니다


레트로 효과 디스플레이

위의 효과를 얻으려면 먼저 Photoshop을 사용하여 다음 단계를 수행합니다.

원본 이미지 열기

새 레이어를 만들고 #C0FFFF 색상으로 채우고 불투명도를 44%로 설정하고 레이어 혼합 모드를 Soft Light로 설정합니다

새 레이어를 만들고 색상 #000699로 채우고 불투명도를 48%로 설정하고 레이어 혼합 모드를 제외로 설정하세요

레이어 병합

PHP 코드를 사용하려면 위의 단계만 따르면 됩니다. 코드는 다음과 같습니다.

//打开图片
$im = new Imagick('./hebe.jpg');
//新建图层,使用颜色`#C0FFFF`填充后,不透明度设为`44%`
$layer = new Imagick();
$layer->newImage($im->getImageWidth(), $im->getImageHeight(), '#C0FFFF');
$layer->setImageOpacity (0.44);
//叠加到原图上,图层混合模式为`柔光`
$im->compositeImage($layer, Imagick::COMPOSITE_SOFTLIGHT, 0, 0);
//新建图层,使用颜色`#000699`填充后,不透明设置为`48%`
$layer = new Imagick();
$layer->newImage($im->getImageWidth(), $im->getImageHeight(), '#000699');
$layer->setImageOpacity (0.48);
//叠加到原图上,图层混合模式为`排除` 
$im->compositeImage($layer, Imagick::COMPOSITE_EXCLUSION, 0, 0);
//完成!
$im->writeImage('./vintage.jpg');

요약

위는 php_imagick을 사용하여 레트로 효과를 얻는 방법입니다. 관심 있는 친구들이 직접 코드를 입력하는 것이 더 쉬우므로 이 글의 내용이 모두의 학습이나 도움이 되기를 바랍니다. 도움을 받으러 오세요. 궁금한 점이 있으면 메시지를 남겨서 소통하세요.

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