【问题标题】:Watermarking image position[asp.net]水印图片位置[asp.net]
【发布时间】:2013-01-25 12:01:27
【问题描述】:

我正在尝试关注这个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
);

【问题讨论】:

    标签: asp.net image position watermark


    【解决方案1】:

    问题是您必须先计算图像的高度和宽度

    计算原始图像的高度和宽度

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

    同样,您也可以计算其他图像。

    【讨论】:

      【解决方案2】:

      当前代码没有将水印放在左上角,而是放在右上角。

      要将其放在左上角,请使用:

      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;
      

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

      【讨论】:

        猜你喜欢
        • 2015-12-09
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多