///
/// creating a watermarked photograph with gdi+ for .net
///
/// 原始图片的物理路径
/// 水印图片的物理路径
/// 水印文字(不显示水印文字设为空串)
/// 输出合成后的图片的物理路径
/// @整理: [email protected]
public void buildwatermark(string rsrcimgpath,string rmarkimgpath,string rmarktext,string rdstimgpath)
{
//以下(代码)从一个指定文件创建了一个image 对象,然后为它的 width 和 height定义变量。
//这些长度待会被用来建立一个以24 bits 每像素的格式作为颜色数据的bitmap对象。
image imgphoto = image.fromfile(rsrcimgpath);
int phwidth = imgphoto.width;
int phheight = imgphoto.height;
bitmap bmphoto=new bitmap(phwidth,phheight, pixelformat.format24bpprgb);
bmphoto.setresolution(72,72);
graphics grphoto = graphics.fromimage(bmphoto);
//这个代码载入水印图片,水印图片已经被保存为一个bmp文件,以绿色(a=0,r=0,g=255,b=0)作为背景颜色。
//再一次,会为它的width 和height定义一个变量。
image imgwatermark = new bitmap(rmarkimgpath);
int wmwidth = imgwatermark.width;
int wmheight = imgwatermark.height;
//这个代码以100%它的原始大小绘制imgphoto 到graphics 对象的(x=0,y=0)位置。
//以后所有的绘图都将发生在原来照片的顶部。
grphoto.smoothingmode = smoothingmode.antialias;
grphoto.drawimage(
imgphoto,
new rectangle(0, 0, phwidth, phheight),
0,
0,
phwidth,
phheight,
graphicsunit.pixel);
//为了最大化版权信息的大小,我们将测试7种不同的字体大小来决定我们能为我们的照片宽度使用的可能的最大大小。
//为了有效地完成这个,我们将定义一个整型数组,接着遍历这些整型值测量不同大小的版权字符串。
//一旦我们决定了可能的最大大小,我们就退出循环,绘制文本
int[] sizes = new int[]{16,14,12,10,8,6,4};
font crfont = null;
sizef crsize = new sizef();
for (int i=0 ;i<7; i++)
{
crfont = new font("arial", sizes[i],
fontstyle.bold);
crsize = grphoto.measurestring(rmarktext,
crfont);
if((ushort)crsize.width < (ushort)phwidth)
break;
}
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔