C#.NET에서 해상도를 변경하지 않고 이미지를 자르려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/857147

문제

나는 큰 사진을 나누고 그에 참여하기 위해 작은 프로그램을 만들었습니다. "Microsoft Paint"로 만든 이미지를 가져 오면이 이미지는 "96 DPI"이므로 내 프로그램이 잘 작동합니다.

그러나 Photoshop의 해상도로 만든 사진은 71.6dpi입니다.이 사진을 자르면 새로운 자른 그림은 96dpi 해상도를 가져 오므로 크기가 그들 사이의 연기입니다.

해상도를 유지하면서 사진을 자르고 싶습니다.

.

매우 감사합니다

도움이 되었습니까?

해결책

Bitmap.clone 자른 이미지 사본을 만들어 저장할 수 있습니다. 해상도 나 다른 것도 변경해서는 안됩니다 (이미지가 더 작은 경우 더 많이 확대하는 프로그램에서 이미지를 열면 이미지가 더 크게 보일 것입니다). 캔버스를 확장하는 데 사용할 수 없습니다 (메모리 오류가 나옵니다). 그러니 그냥 잡아라 Image 파일에서 캐스트 Bitmap, (system.drawing 네임 스페이스) 그리고 더 작게 복제 한 다음 저장하십시오.

예시:

using System.Drawing;
//...
Bitmap x = (Bitmap) Image.FromFile(@"c:\tmp\food.png");
Image x2 = x.Clone(new Rectangle(25, 25, 50, 50), x.PixelFormat);
x2.Save(@"c:\tmp\food2.png");

다른 팁

DPI (인치당 도트)는 픽셀 크기와 매체의 크기 사이의 관계 일뿐입니다. 1024 x 768 픽셀 인 이미지가있는 경우 1024 x 768입니다. 비트 맵/바이너리 파일에 고유 한 DPI가 부착되지 않습니다.

300 DPI로 인쇄 한 프린터에 해당 이미지를 인쇄하려면 용지의 크기를 계산할 수 있습니다.

비트 맵 클래스의 setResolution () 메소드를 사용하면 이미지의 해상도를 지정할 수 있습니다.

보다 http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top