2010-01-13 1 views
3

아무도 tif 파일을 열 수있는 방법에 대한 샘플 코드가 있습니까? 인덱스 된 픽셀에서 새 비트 맵 32로 위치를 바꿀 수 있습니까?C# 인덱스 된 픽셀을 새 파일로 변환 bit32

나는 이것을 발견했다. http://fci-h.blogspot.com/2008/02/c-indexed-pixel-problem.html 그러나 나는 그것을 함께 조각하기에 새로운 것이다. 실제로 새 파일을 만들지 않고이 모든 것을 메모리에서 읽을 수있는 방법이 있습니까?

무슨 뜻입니까? 나는 원본 파일 (나는 이미 가지고있는)을 찾아야 만한다. 파일을 임시 위치에 복사하십시오 (제가 가지고 있습니다). 내가 이해하지 못하는 것은 새로운 파일을 복사 할 때 원래 크기를 유지하고 새로운 파일에 32 비트 맵을 제공해야하는 경우입니다.

C#은 실제로 지원하지 않기 때문에 그림을 그릴 수 없습니다 색인 된 픽셀.

+0

"다음과 같이 다시 작성하십시오."색인을 생성 한 픽셀에서 새 비트 맵 32로 위치를 변경 하시겠습니까? " –

+0

어쩌면 도움이 될만한 편집을 확인하십시오 –

+0

픽셀 인덱싱이 어떤 견인력을 갖게되는지 설명하면 도움이 될 것입니다. 나는 엄청난 돈을 벌었 다. 그물 그리기는 그 개념에 익숙하지 않다. –

답변

2

이것은 당신이 내가 생각하는 원하는 것을 ...

당신이의 drawImage을 한 후, 그 비트 맵으로 이미지 그냥 'BM'작업, 저장할 필요가없는 경우

...

  Bitmap bm = (Bitmap)System.Drawing.Image.FromFile("TifFilePath.tif", true); 
      Bitmap tmp = new Bitmap(bm.Width, bm.Height); 
      Graphics grPhoto = Graphics.FromImage(tmp); 
      grPhoto.DrawImage(bm, new Rectangle(0, 0, tmp.Width, tmp.Height), 0, 0, tmp.Width, tmp.Height, GraphicsUnit.Pixel); 
      bm.Save("JPGFilePath.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 
      grPhoto.Dispose(); 
+0

Graphics 객체를 반드시 삭제해야합니다. –

2
Bitmap newImage = new Bitmap(original); 

이렇게하면 newImage가 원본 콘텐츠로 시작됩니다. 차이점은 original.PixelFormat에 관계없이 newImage.PixelFormat == PixelFormat.Format32bppArgb로 끝나는 것입니다.

+0

대단하다 !! – MahdiS