2013-03-03 3 views
2

내 이미지를 수정하려면 Image::Magick을 사용하고 있습니다. 그런 다음 HTTP::Request을 사용하여 이미지 콘텐츠를 API에 보냅니다.Perl Image :: Magick 메모리를 확보하십시오

HTTP::Request은 요청 콘텐츠를 설정할 수있는 content 메서드가 있지만 분명히 콘텐츠가 메모리에 있어야합니다.

파일을 열고 읽음으로써 이미지의 내용을 변수로 읽을 수 있음을 알고 있습니다. 그러나 Image::Magick은 이미 이미지의 내용을 메모리에 가지고 있으므로 내 Image::Magick 객체를 통해 얻을 수있는 방법이 있습니까? 감사!

답변

4

Image::Magick은 더 간단하고 효율적으로 조작 할 수 있도록 이미지를 메모리에 사용자 지정 형식으로 유지합니다. 데이터를 JPEG, PNG 또는 파일 형식으로 쓰기 전에 요청한 형식으로 압축해야하므로 메모리에있는 이미지에 액세스 할 수 없습니다.

그러나이 모듈의 ImageToBlob 메서드는 디스크에 쓰게 될 데이터의 메모리 내 복사본을 제공하여 쓰기 및 다시 읽지 않도록합니다. 더 이상의 프레임을 포함하는 개체를 허용하는 이미지의 목록을 반환합니다, 그래서 당신은 단지 하나의 프레임이있는 경우

my @blobs = $image->ImageToBlob; 
$request->content($blobs[0]); 

또는

my ($blob) = $image->ImageToBlob; 
$request->content($blob); 
+0

우수함 작성해야한다는

주 대답. 감사! – srchulo

관련 문제