2013-02-10 88 views
-2

我想按照这个article,很容易实现text over image,现在我的问题是上面提到的文章中的图片水印放入10像素从左所以如何将图像放置在右上角,顶部中间,中间左侧,中间,中间右侧和相似处。水印图像位置[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; 

现在计算要放置在它

图像10
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); 

同样可以阿洛斯计算其他图像。

0

当前的代码不会在左上方放置水印,它将放置在右上角。

要将其放在左上角,您可以使用:

int xPosOfWm = 10; 
int yPosOfWm = 10; 

要在左,中,右horisontally定位水印:

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; 

只需将一个水平线与一个垂直线组合即可获得任意组合你想要的东西。