0
我使用Imagick庫在PHP中使用ImageMagick。我首先從外部服務器讀取(JPEG)圖像用:Imagemagick具有灰度圖像和24位深度
$img = new Imagick();
$img->readImage($source);
然後將其與下面的代碼上傳到我的亞馬遜S3鬥:
$s3 = new AmazonS3();
$s3->create_object(BUCKET, $destination_path, array(
'body' => $img->getImageBlob(),
'length' => $img->getImageSize(),
'acl' => AmazonS3::ACL_PUBLIC,
'contentType' => 'image/jpeg'
));
似乎一切都工作正常,這些文件出現在我的存儲桶中,我可以在瀏覽器中查看它們。但是,在處理灰度圖像時,ImageMagick會將圖像從24位深度轉換爲8位深度。我希望他們保持他們的24位深度,我怎麼能做到這一點?我試過以下,但沒有成功:
$img->setImageType(imagick::IMGTYPE_TRUECOLOR);
對於彩色圖像,一切工作正常,圖像保持自己的24位深度。
編輯:
似乎ImageMagick的從圖6(真彩色)圖像類型改變爲2(灰度)。試圖覆蓋這個不起作用,如用下面的代碼進行測試:
$img = new Imagick();
$img->readImage($source);
$img->setImageType(6);
echo $img->getImageType();
它輸出2