2014-12-11 5 views
0

사용자가 이미지를 바꾸는 기능 (페이지 사이에서 회전 삽입)을 사용하여 Tiff 이미지를로드하고 필요에 따라 수정할 수있는 앱을 작성해야했습니다.TiffBitmapEncoder가 색상으로 저장되지 않습니다.

내가 가진 문제는 이미지가 저장 될 때 흑백이 아닌 컬러로 저장된다는 것입니다. 로드 된 이미지는 아무런 문제없이 컬러로 표시되므로 문제의 원인이되는 저장 인 것 같습니다. 내가 원본 파일의 속성을 볼 때

//create encoder 
TiffBitmapEncoder tiffEncoder = new TiffBitmapEncoder(); 
tiffEncoder.Compression = TiffCompressOption.Ccitt4; 

//loop through images and create frames 
foreach (BitmapSource src in bitmapList) 
{ 
    BitmapFrame bmFrame = BitmapFrame.Create(src); 
    tiffEncoder.Frames.Add(bmFrame); 
} 

//create stream to write file 
FileStream fStream = null; 
try 
{ 
    fStream = new FileStream(path, FileMode.Create); 
    //Save Tiff image to disc 
    tiffEncoder.Save(fStream); 
} 
finally 
{ 
    if (fStream != null) 
    { 
     fStream.Close(); 
    } 
} 

는 24의 비트 깊이를 가지고 있지만, 새로 저장 :

내가 BitmapSource는의 배열에서 TIFF 이미지를 저장하기 위해 사용하고있는 코드입니다 이미지의 비트 심도가 1입니다 (흑백입니까?). 이것이 문제입니까?

저는 Tiffs와 새로운 작업을하기 때문에 모든 지침을 매우 높이 평가할 수 있습니다.

다른 정보가 필요하면 알려주십시오.

텍사스

+0

아마도 'TiffCompressOption.Ccitt4' 압축이 사용 되었기 때문일 수 있습니다. CCITT 압축은 팩스 문서 용이며 흑백 이미지 만 지원합니다. LZW 나 Deflate와 같은보다 일반적인 목적의 압축을 사용해보십시오. – haraldK

+0

고마워, 100 % 일했다. 응답으로 표시 할 수 있도록 응답을 만드시겠습니까? – Cal

+0

좋아요! 답변으로 게시 됨 – haraldK

답변

0

이미지는 아마로 변환되기 때문에 사용중인 TiffCompressOption.Ccitt4 압축, 화이트/블랙. CCITT 압축은 팩스 문서 용이며 흑백 이미지 만 지원합니다.

대신 LZW 나 수축과 같은보다 일반적인 목적의 압축을 사용하십시오. 이렇게하면 이미지 데이터가 24 또는 32 비트 색상 데이터로 변경되지 않고 전달됩니다.

관련 문제