2009-06-01 6 views
3

두 이미지를 C# 드로잉 네임 스페이스를 사용하여 나란히 그리려합니다. 는 여기에 우리가 같은 높이의 두 개의 이미지를 가지고 가정 매우 간단한 예입니다C# : Graphics.DrawImage를 사용하여 다른 해상도에도 불구하고 크기 유지

Image[] oldImages = GetOldImages(); 

var newImage = new Bitmap(oldImages[0].Width + oldImages[1].Width, 800); 

using (var newImageGraphics = Graphics.FromImage(newImage)) 
{ 
    newImageGraphics.DrawImage(oldImages[0], 0, 0); 
    newImageGraphics.DrawImage(oldImages[1], oldImage[0].Width, 0); 
    newImageGraphics.Save(); 
} 

두 오래된 이미지의 해상도가 같은 경우이 확인을 작동합니다.

그러나 해상도가 다르면 이미지의 크기가 조정되어 문제가 발생합니다. 예를 들어 첫 번째 이미지의 해상도가 다른 경우 두 번째 이미지의 위치가 잘못 지정됩니다.

누구든지 쉽게이 문제를 해결할 수있는 방법을 알고 있습니까? 원래 이미지의 높이와 너비가 새 이미지에 그려지는 경우에도 동일하게 유지하는 것이 이상적입니다.

답변

1

기본적으로 새 이미지에 추가하기 전에 두 번째 이미지의 크기를 조정해야합니다.

원래 높이와 너비를 유지하려면 두 번째 이미지의 캔버스 크기를 변경해야합니다. 이렇게하면 실제 이미지 주위에 빈 공간을 추가하여 이미지 크기를 늘릴 수 있습니다. 두 번째 이미지가 첫 번째 이미지보다 큰 경우 첫 번째 이미지 대신이 작업을 수행해야합니다.

4

이 트릭을 시도

Bitmap picture_1 = new Bitmap(picture_1_path); 
Graphics graphics = Graphics.FromImage(picture_1); 
Bitmap picture_2 = new Bitmap(picture_2_path); 
picture_2.SetResolution(graphics.DpiX, graphics.DpiY); 

//Then do with pictures anything 
+0

나는 두 이미지의 해상도에 문제가 있고,이 트릭을했다. – agarcian