2012-10-20 3 views
2

이 질문은 이미 질문되었습니다 (아래 링크 참조). 그래서 내가 ImageMagick 스크립트를 PNGs 색조를 사용하고 있는데 그것은 잘 작동하지만 문제는 실제로 서버에 파일을 생성한다는 것입니다. 대신 GD가 이미지 조작을 수행 한 다음 실제로 이미지를 저장하지 않고 표시하는 GD가 원하는 것은 무엇입니까?PHP : GD와 같은 서버에 저장하지 않고 ImageMagick 이미지 표시

다음은 이미지를 색칠하는 데 사용하는 ImageMagick 코드입니다. 이 코드는 변환을 수행하고 최종 이미지 인 서버에 여분의 파일을 생성합니다.

<?php 
header('Content-Type: image/png'); 

$source = "src.png"; 

$im = imagecreatefrompng($source); 
imagefilter($im, IMG_FILTER_GRAYSCALE); 
imagepng($im); 
imagedestroy($im); 

?> 

그래서 기본적으로 내가에서 수행되는 이미지 조작을 원하는 : 여기

<?php 

$source = "src.png"; 
$final = "FINAL.png"; 
$color = "#00FF00"; 

exec("convert $source -threshold 100% +level-colors '$color', $final"); 

?> 

서버에 추가 이미지를 저장하지 않고 직접 최종 이미지를 이미지 조작을 수행하고 표시하는 GD 예제 코드 첫 번째 예제이지만 추가 이미지를 저장하지 않고 브라우저에 출력을 표시하지 않습니다.

링크 검색 : 솔루션의

아무도 일하지 : Generate images with ImageMagick without saving to file but still display them on website

가 어떻게 내 ImageMagick이 코드 iMagick하기를 변환 할 수 있습니까?PHP-Imagemagick image display

+0

출력 파일 이름으로'-' 시도해 볼 수 있습니다. 많은 명령 행 응용 프로그램은 파일로 저장하는 대신 단순히 출력을 인쇄하는 신호로 사용합니다. 그러나 cli 앱은 웹 기반 스크립트로 호출되는 것을 모릅니다. 이미지의 원시 바이너리 내용을 콘솔에 출력해도 마술처럼 이미지가 보이지 않습니다. –

+0

그래서'-'는 당신이 말한 것과 똑같습니다. 그러나 이미지를 저장할 수 있도록 이미지가 어디에 저장되어 있습니까? –

+0

그것은 imagick의 stdout에 덤핑 될 것이고, 이것은 php로 반환 될 것입니다. 그래서 exec() 대신 [passthru()] (http://php.net/manual/en/function.passthru.php)로 전환하십시오. –

답변

1

다른 사람들이 배우기 위해 코드를 사용하는 직접적인 예입니다. Godaddy의 공유 Linux 서버에서이 동일한 방법을 사용합니다.

<?php 
    $source = "src.png"; 
    $color = "#00FF00"; 

    $cmd = "convert $source -threshold 100% +level-colors '$color',". 
    " -unsharp 0.2x0.6+1.0 -quality 50 JPG:-"; 

    header("Content-type: image/jpeg"); 
    passthru($cmd, $retval); 
    exit(); 
?> 
  • : - 당신은 당신이 "-threshold 100 % + 레벨 색상 '$ 색상',"제대로을 사용하고 있는지 있습니까? 임계 값 100 %는 이미지를 검정색으로 푸시합니다. 그럼 + 레벨 색상 '# 00FF00',은 단색 녹색 이미지를 만듭니다. 이 데모 코드를 간소화했다고 가정합니다.

  • : - "+ 레벨 색상 '$ 색상'는"고대 디의 서버에서 작동하지 않습니다. 그것은 비록 내 홈 서버에서 잘 작동합니다. 아마도 Godaddy의 서버에 설치된 오래된 ImageMagick 버전 일 수 있습니다.

관련 문제