水印图像位置[asp.net]

时间:2013-02-10 03:06:10

标签: asp.net image position watermark

我正在尝试关注此article并且很容易实现 text over image ,现在我的问题出现在上面提到的图片水印放置左起10个像素所以我如何将图像放置在右上角,中上,中左,中,右中,类似于底部

以下是如何放置在右上角:

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

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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;

只需将一个水平面与一个垂直面相结合即可获得您想要的任何组合。