2013-02-10 1 views
-2

Я пытаюсь следовать этому article, и это было легко реализовать text over image и теперь моя проблема в вышеупомянутой статье изображение водяного знака помещался 10 пикселей слева так как разместить изображение аналогично вверху справа, сверху среднего, среднего левого, центрального, среднего правого и подобия внизу.Watermarking положение изображения [asp.net]

Вот как он был помещен в верхнем правом углу:

int xPosOfWm = ((phWidth - wmWidth)-10); 
int yPosOfWm = 10; 

grWatermark.DrawImage(
    imgWatermark, 
    new Rectangle(
    xPosOfWm, yPosOfWm, 
    wmWidth, wmHeight 
), 
    0, 0, 
    wmWidth, wmHeight, 
    GraphicsUnit.Pixel, 
    imageAttributes 
); 

ответ

0

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

рассчитать первоначальную высоту изображения и ширину

Image oImage="path"; 
var oheight=oImage.Height; 
var oWidth=oImage.width; 

Теперь Рассчитайте изображение, которое вы хотите поместить над ним

var WmImage="path"; 
var wWheight=WmImage.Height; 
var wWidth=WmoImage.width; 

верхний правый

var left=oWidth-wWidth-10; 
var top=oheight-10; 
//draw the wate mark image on thse point 
oImage.DrawImage(imgWatermark,new Rectangle(left,top,wmWidth, 
wmHeight),0,0,wmWidth,wmHeight,GraphicsUnit.Pixel,imageAttributes); 

Аналогично можно рассчитать для других изображений ALOS.

0

В текущем коде не помещается водяной знак в левом верхнем углу, он располагается сверху справа.

Чтобы поместить его в верхнем левом углу, вы используете:

int xPosOfWm = 10; 
int yPosOfWm = 10; 

Чтобы поместить водяной знак горизонтально на левый, центральный и правый:

int xPosOfWm = 10; 

int xPosOfWm = (phWidth - wmWidth)/2; 

int xPosOfWm = (phWidth - wmWidth) - 10; 

Чтобы поместить водяной знак вертикально сверху , средний и нижний:

int yPosOfWm = 10; 

int yPosOfWm = (phHeight - wmHeight)/2; 

int yPosOfWm = (phHeight - wmHeight) - 10; 

Просто объедините один горизонтальный угол с одной вертикальной, чтобы получить любое сочетание что вы хотите.