시작하기 전에 나는 PHP 멍청이임을 주목하고 싶습니다. 내가하고 싶은 일은 PNG 이미지를 한 가지 색으로 채색하는 것입니다. 따라서 모든 투명 픽셀은 투명하게 유지되고 모든 불투명 픽셀은 해당 색상이됩니다. 이 답변에 대한 여러 사이트를 검색했지만 어떤 이유로 내가 원하는 것을 찾을 수 없습니다. 기본적으로PHP : PNG tinitng (1 color)
<?php
header('Content-Type: image/png');
$color = $_GET['color'];
$im = imagecreatefrompng($_GET['img']);
$width = imagesx($im);
$height = imagesy($im);
$imn = imagecreatetruecolor($width, $height);
imagealphablending($imn,false);
$col=imagecolorallocatealpha($imn,255,255,255,127);
imagesavealpha($imn,true);
imagefilledrectangle($imn,0,0,$width,$height,$col);
imagealphablending($imn,true);
imagecopy($imn, $im, 0, 0, 0, 0, $width, $height);
imagefilter($imn, IMG_FILTER_GRAYSCALE);
if ($color[0] == '#')
$color = substr($color, 1);
if (strlen($color) == 6)
$r = $color[0].$color[1];
$g = $color[2].$color[3];
$b = $color[4].$color[5];
$r = hexdec($r);
$g = hexdec($g);
$b = hexdec($b);
imagefilter($imn, IMG_FILTER_COLORIZE, $r, $g, $b);
imagepng($imn);
imagedestroy($imn);
?>
내가 여기에 볼 수 있습니다 원하는 완벽한 예 : 여기
은 내 첫 번째 시도는 내가 찾은 다른 예를 기반으로합니다. 유일한 변경 사항은 검은 색 대신 사용자가 지정한 색상으로 변환되기를 원합니다. Convert non-transparent pixels to black당신에게
=============================== 2012년 10월 17일 업데이트 감사
그것은 일<?php
$source = "test.png";
$temp = "temp.png";
$color = "red";
$final = "FINAL.png";
exec("convert $source -alpha extract -threshold 0 -negate -transparent white $temp");
exec("convert $temp -fill $color -opaque black $final");
?>
는, 그러나 작은 문제가있다 : 그래서 xception의 답변에 따라
, 여기에 내가 그의 스크립트를 실행하는 데 사용되는 코드입니다. 아래 스크린 샷에 표시된 것처럼 들쭉날쭉 한 가장자리가 있습니다. 이미지를 부드럽게하는 방법에 대한 아이디어가 있으므로 BEFORE 스크린 샷처럼 멋지게 보입니까?
하기 전에 :
AFTER :
감사합니다. 그래서 저는 PHP를 처음 사용하고 ImageMagick에 익숙하지 않아 위 예제를 어떻게 사용하는지 확신 할 수 없습니다. 나에게 완전한 모범을 보여줄 수 있다고 생각하니? 또한, 내가 올바르게 게시 한 것을 읽는다면, 그 스크립트는 그것을 표시하는 대신 서버에 이미지를 생성 할 것입니다. 나는 이미지를 처리하고 변경 사항을 표시하는 첫 번째 예제와 같은 것을 필요로합니다. –
PHP에서 imagemagick으로 이미지를 처리하는 것이 가능합니다. 그러나 imagick 확장자가 필요합니다. 그러나이 예제를 imagick 예제로 바꿀 시간이 없습니다. 함수에 대한 설명서가 매우 나쁘기 때문에 - 함수 및 매개 변수 이름 제외 내가 마지막으로 사용한 것은 아무것도 기록되어 있지 않았기 때문에, 내가 원했던 것을 어떻게하는지 알아 내려고 하루가 걸렸다. 내가 준 커맨드 라인에서 각 매개 변수에 해당하는 PHP imagick 코드로 인터넷 검색을 시도해보십시오. – xception
고마워요, 제가 살펴보고 그것을 가지고 예를 게시 할 것입니다. –