///
/// 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;
}
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级