初涉 ASP.NET 编程,第一个小作品,请各位检查
该程序只是根据我的理解优化了接口,使之应用简单,功能强大
可以方便实现图片、文字水印混排,阴影、透明
贴心的水印位置设定,水印大小设定
代码优化以后再处理,暂时用来做我的练习网站足够使用
应用示例(将使用说明放到一起了):
![]()
Code
// 上传图片处理的情况 Image 为文件域
// 上传后保存一张缩略图,再保存一张水印图,保存一张源图
// 注:这里没有判断是否图片文件,实际应用请先判断
if (Image.HasFile)
![]()
![]()
{
// 从上传文件 IO 流创建 ImagePlus 对象
// 构造函数还有:
// ImagePlus(filepath) 从磁盘文件创建
Fonshen.NET.ImagePlus imgplus = new Fonshen.NET.ImagePlus(Image.FileContent);
![]()
![]()
/**//// <summary>
/// 缩放图片到 140*140 范围内,缩放模式 2
/// </summary>
/// <param name="w">目标宽度</param>
// w = 0 则 按 高 等比缩放
![]()
/**//// <param name="h">目标高度</param>
// h = 0 则 按 宽 等比缩放
![]()
/**//// <param name="mode">缩放模式</param>
// 模式还有:
// 0:自动(预留)
// 1:等比缩放
// 2:等比缩放补空
// 3:等比缩放剪切
// 4:简单缩放,很可能变形
imgplus.MakeThumbnail(140, 140, 2);
![]()
![]()
/**//// <summary>
/// 保存缩放图为文件 1.jpg
/// </summary>
/// <param name="path">文件路径</param>
/// <param name="format">图片格式</param>
// SaveAs 后将重置“状态”,以便全新处理
imgplus.SaveAs(Server.MapPath("1.jpg"), "jpg");
![]()
![]()
/**//// <summary>
/// 添加文字水印
/// </summary>
/// <param name="text">文本</param>
/// <param name="place">位置</param>
// 位置有:
// 0:自动
// 1:左上 2:正上 3:右上
// 4:左中 5:正中 6:右中
// 7:左下 8:正下 9:右下
![]()
/**//// <param name="offsetX">位置 x 向偏移</param>
/// <param name="offsetY">位置 y 向偏移</param>
/// <param name="color">颜色值</param>
/// <param name="alpha">透明度</param>
/// <param name="family">字体</param>
/// <param name="size">字体大小</param>
// 当 size < 1,文字宽度 = 目标图片宽*size
// 当 size >=1, 字体大小 = size 像素
imgplus.AddText("Images.fonshen.com", 0, -1, 0, 0xffffff, 0.5F, "Arial", 0.8F);
imgplus.AddText("Images.fonshen.com", 0, 0, -1, 0xffffff, 0.5F, "Arial", 0.8F);
imgplus.AddText("Images.fonshen.com", 0, 1, 0, 0xffffff, 0.5F, "Arial", 0.8F);
imgplus.AddText("Images.fonshen.com", 0, 0, 1, 0xffffff, 0.5F, "Arial", 0.8F);
imgplus.AddText("Images.fonshen.com", 0, 0, 0, 0x000000, 0.5F, "Arial", 0.8F);
![]()
![]()
/**//// <summary>
/// 添加图片水印
/// </summary>
/// <param name="path">水印文件路径</param>
/// <param name="place">位置,含义同上</param>
/// <param name="offsetX">位置 x 偏移</param>
/// <param name="offsetY">位置 y 偏移</param>
/// <param name="alpha">透明度</param>
/// <param name="size">水印大小</param>
// 当 size < 1,水印在(目标图片宽*size)*(目标图片高*size)范围内
// 当 size >=1, 水印为源图的 size 倍大小
imgplus.AddPicture("logo.png", 9, -5, -5, 0.5F, 1F)
![]()
imgplus.SaveAs(Server.MapPath("2.jpg"), "jpg");
![]()
![]()
/**//// <summary>
/// 以源图格式保存源图,这里文件后缀还是个问题
/// </summary>
imgplus.SaveAs(Server.MapPath("3.jpg"));
![]()
}
![]()
下载:Fonshen.NET.DLL