2013-05-02 2 views
0

업로드하기 전에 이미지를 워터 마킹했습니다. 이미지가 작 으면 문제가 발생합니다. 워터 마크가 크게 보입니다. 원본 이미지에 따라 워터 마크 이미지 크기를 변경하고 싶습니다 ..원본 이미지에 따라 C# 워터 마크 이미지 크기가 변경됩니다.

: 워터 마크 이미지는 원본 이미지의 30 % 여야합니다. 나는 C#에서이 일을 해요 :

imageGraphics.FillRectangle (watermarkBrush, 새로운 Rectangle (새 포인트 (X, Y), 새로운 크기 (watermarkImage.Width + 1, watermarkImage.Height을)));

먼저 이미지 크기를 얻은 다음 그에 따라 워터 마크 이미지 크기를 변경하려면 어떻게해야합니까 ??

+1

음 ... 어떻게 워터 마크를 적용하고 있습니까? 'Image' 객체 패밀리는'.Width'와'.Height' 값을 가지고 있습니다 - 여러분은 aspect 배급을 유지하는 간단한 스케일링 연산을 할 필요가 있습니다. 워터 마크를 넣었을 때 코드없이 우리가 도울 수는 없을 것입니다 – Basic

+0

@ 워터 마크를위한 기본 : imageGraphics.FillRectangle (watermarkBrush, 새 Rectangle (새 Point (x, y), 새 크기 (watermarkImage.Width + 1, watermarkImage.Height)))); –

답변

0

음은 ... 뭔가 같은 : Resizing an Image without losing any quality

:

Bitmap yourImage = ...; 
Bitmap yourWatermark = ...; 

int newWaterWidth = (int)((float)yourImage.Width * .3); 
int newWaterHeight = (int)((float)yourImage.Height* .3); 


using(Bitmap resizedWaterm = new Bitmap(newWaterWidth, newWaterHeight)) 
using(Graphics g = Graphics.FromImage((Image)resizedWaterm)) 
{ 
    g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
    g.DrawImage(yourWatermark, 0, 0, newWaterWidth , newWaterHeight); 
} 

int x = ..., y = ...; 
using(Graphics g2 = Graphics.FromImage((Image)resizedWaterm)) 
{ 
    g2.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(watermarkImage.Width + 1, watermarkImage.Height))); 
} 

에서 크기를 조정할

코드 (테스트하지, 당신은 또한 ... 점에서 값을 입력해야합니다)

희망이 도움이됩니다!

+0

헤이 .. 고마워..................하려고 생각합니다. @mortb –

+0

와트는 "destWidth, destHeight"라고 말할 수 있습니까 ?? –

+0

"복사 붙여 넣기"오류가 발생했습니다. 수정 됨 :) – mortb

관련 문제