2013-05-02 2 views
0

Я использую водяные знаки для моих изображений перед загрузкой. проблема im сталкивается, если изображение маленькое, водяной знак выглядит большим .. Я хочу сменить водяной знак размер изображения в соответствии с исходным изображением.C# изменение водяного знака размер изображения в зависимости от исходного изображения

для, например. : изображение водяного знака должно составлять 30% от исходного изображения. Я делаю это в C#:

imageGraphics.FillRectangle (watermarkBrush, новый прямоугольник (новая точка (х, у), новый размер (watermarkImage.Width + 1, watermarkImage.Height)));

Что я должен сделать, чтобы сначала получить размер изображения, а затем изменить размер изображения водяного знака соответственно?

+1

Ну ... Как вы применяете водяной знак? Семейство объектов «Image» имеет значения «.Width» и «.Height» - поэтому вам нужно выполнить простую операцию масштабирования, которая сохраняет аспектный рацион и использует его при использовании водяного знака, но без кода мы не сможем помочь – Basic

+0

@ Basic для водяных знаков: imageGraphics.FillRectangle (водяной знакBrush, новый прямоугольник (новый пункт (x, y), новый размер (watermarkImage.Width + 1, watermarkImage.Height))); –

ответ

0

Ну ... что-то вроде:

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))); 
} 

(не тестировался, вам также необходимо заполнить значения в ... точек)

кода для изменения размера от: Resizing an Image without losing any quality

Надеюсь, это поможет!

+0

эй спасибо .. я попробую n пусть у тебя знает .. @mortb –

+0

может у меня сказать, что «destWidth, destHeight» есть ?? –

+0

Это были ошибки «Скопировать пасту». Исправлено :) – mortb

Смежные вопросы