CCITT 그룹 4 압축을 사용하여 24bpp 비트 맵을 검정색 & 흰색 TIFF로 변환하려고합니다. 결과는 예상대로 TIFF 1 bpp 이미지이지만 압축되지 않았습니다. http://filehorst.de/d/bmqjzDuB에서Magickwand를 TIFF 및 CCITT 그룹 4 압축으로 변환하면 압축되지 않은 이미지가 나타납니다.
MagickWandGenesis;
wand := NewMagickWand;
try
status := MagickReadImage(wand,PChar(InputFile));
if (status = MagickFalse) then HandleError;
status := MagickSetImageFormat(wand,'TIFF');
if (status = MagickFalse) then HandleError;
// convert to black & white/lineart
status := MagickSetImageType(wand,BilevelType);
if (status = MagickFalse) then HandleError;
// Group4Compression seems defined as 4 which
// apparently doesn't match imagemagick source. Bug:
//http://mantis.freepascal.org/view.php?id=26723
status := MagickSetImageCompression(wand,CompressionType(7)); //was Group4Compression
if (status = MagickFalse) then HandleError;
// Apparently set(image)compresionquality and
// stripimage are necessary to actually compress
status := MagickSetImageCompressionQuality(wand,0);
if (status = MagickFalse) then HandleError;
status := MagickStripImage(wand);
if (status = MagickFalse) then HandleError;
status := MagickWriteImage(wand,PChar(OutputFile));
if (status = MagickFalse) then HandleError;
finally
wand := DestroyMagickWand(wand);
end;
MagickWandTerminus;
소스 이미지
http://filehorst.de/d/bluhjivq원본에서
원래 (결함) 프로그램 소스 코드 (: 나는 바인딩을 magickwand 한 프리 파스칼과 상태를 사용하고
는 MagickFalse 결코 오류) 출력 이미지 http://filehorst.de/d/bhlbjHgp
내가 뭘 잘못하고 있니?
편집 : 해결; 솔루션을 오프 사이트에 가져 왔습니다 : FreePascal 바인딩의 CompressionType 열거 형이 오래된 것 같습니다. Group4 압축은 4 (IIRC)이지만 7이어야합니다.
나는 그의 대답이 Mark Setchell에게 주어지기를 바란다. 솔루션의 필수 부분. 위의 소스 코드가 올바른 버전으로 업데이트되었습니다.
아마 magicksetimagcompressressionquality도 설정할 수 있습니까? 또한 group4 압축으로 찾을 수있는 유일한 코드 단편은 http://www.imagemagick.org/discourse-server/viewtopic.php?f=6&t=15373#p54307을 참조하십시오. –
아니요, 도움이되지 않습니다 ... – reiniero
Are 당신은 ImageMagick의 최신 버전을 사용하고 있습니까? 이것은 수정 된 버그 일 수 있습니다. – dlemstra