本篇文章给大家谈谈discuz透明水印源码,以及discuz水印设置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
谁能给个asp.net的图片水印源码啊
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public class ImgHelper
{
/// summary
/// 功能生成小图,+版权信息(图片水印)
/// /summary
/// param name="path"要保存的实际路径/param
/// param name="file"aspx页面中的上传控件/param
/// param name="width"宽/param
/// param name="height"高/param
/// param name="mode"裁剪方式:hw指定高宽缩放(自动分析长宽比)、w指定宽,高按比例、h指定高,宽按比例、cut指定高宽裁减/param
/// param name="strInfo"版权信息/param
/// param name="left"左边位置/param
/// param name="top"上边位置/param
/// returns返回经过处理后的文件名/returns
public static string GetSamilImageAddCopyrightByImg(string path, FileUpload file, int width, int height, string mode, string Path_sypf)
{
string FileName = filename(file);
Path_sypf = path + Path_sypf;
if (File.Exists(FileName) == false)
{
file.PostedFile.SaveAs(path + FileName);//保存原图
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(path + FileName);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(oldimage);
g.DrawImage(copyImage, new System.Drawing.Rectangle(oldimage.Width - copyImage.Width,
oldimage.Height - copyImage.Height, copyImage.Width, copyImage.Height),
0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
string YFileName = "y_" + FileName;
switch (file.PostedFile.FileName.Split(".".ToCharArray())[1].ToUpper())
{
case "JPEG":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "JPG":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "GIF":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Gif);
break;
case "PNG":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Png);
break;
case "BMP":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Bmp);
break;
default:
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
}
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = oldimage.Width;
int oh = oldimage.Height;
float owh = ((float)ow) / ((float)oh);
switch (mode)
{
case "hw"://指定高宽缩放(自动分析长宽比)
if (ow = oh)
{
towidth = width;
toheight = Convert.ToInt32((float)towidth / owh);
}
else
{
toheight = height;
towidth = Convert.ToInt32((float)toheight * owh);
}
break;
case "w"://指定宽,高按比例
toheight = oldimage.Height * width / oldimage.Width;
break;
case "h"://指定高,宽按比例
towidth = oldimage.Width * height / oldimage.Height;
break;
case "cut"://指定高宽裁减(不变形)
if ((double)oldimage.Width / (double)oldimage.Height (double)towidth / (double)toheight)
{
oh = oldimage.Height;
ow = oldimage.Height * towidth / toheight;
y = 0;
x = (oldimage.Width - ow) / 2;
}
else
{
ow = oldimage.Width;
oh = oldimage.Width * height / towidth;
x = 0;
y = (oldimage.Height - oh) / 2;
}
break;
default:
break;
}
//新建一个bmp图片,并制定宽高
System.Drawing.Image thumbnailImage = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板
Graphics newpic = System.Drawing.Graphics.FromImage(thumbnailImage);
//设置高质量插值法
newpic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
newpic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
newpic.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分
newpic.DrawImage(oldimage, new Rectangle(0, 0, towidth, toheight),
new Rectangle(x, y, ow, oh), GraphicsUnit.Pixel);
string S_FileName = "s_" + FileName;
switch (file.PostedFile.FileName.Split(".".ToCharArray())[1].ToUpper())
{
case "JPEG":
case "JPG":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "GIF":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "PNG":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Png);
break;
case "BMP":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
default:
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
}
thumbnailImage.Dispose();
copyImage.Dispose();
g.Dispose();
oldimage.Dispose();
File.Delete(path + FileName);
return S_FileName;//返回处理后的图片名称
}
else//如果图片已经存在则返回""
{
return "";
}
}
/// summary
/// 生成文件名(包括路径)
/// /summary
/// param name="file"上传控件/param
/// param name="filesrc"上传到的目录/param
/// returns根据当前时间并加入随机数/returns
public static string filename(FileUpload file)
{
//得到当前时间精确到毫秒
string FileName = DateTime.Now.ToString("yyMMddHHmmss") + DateTime.Now.Millisecond.ToString();
//得到随机数
char[] s = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G'
,'J','K','L','M','N','P','Q','R','T','U','V','W'
,'X','Z'};
string num = "";
Random r = new Random();
for (int i = 0; i 6; i++)
{
num += s[r.Next(0, s.Length - 1)].ToString();
}
//得到文件上传路径
string[] FileSrc = file.PostedFile.FileName.Split(@"\".ToCharArray());
string YFileName = FileSrc[FileSrc.Length - 1];
//得到文件扩展名
string FileEx = YFileName.Split('.')[1].ToUpper();
//得到文件名并返回
return FileName + num + "." + FileEx;
}
}
discuz x2.5水印怎么设置,然后上传?求解
后台-全局-水印设置,然后要修改的水印图片,“如果设置 GIF 类型的文件作为水印,水印图片为 static/image/common/watermark.gif,如果设置 PNG 类型的文件作为水印,水印图片为 static/image/common/watermark.png,您可替换水印文件以实现不同的水印效果。”
切记:不是模板下面修改水印图片,需要修改的水印图片在Discuz_X2.5_SC_GBK\upload\static\image\common,也就是你根目录下的static文件夹。
怎样给Discuz,X1.5论坛添加水印设置
设置水印功能,主要是为了防止其他地方盗用你的图片,另外水印图片设置为自己的网站名称等,可以起到宣传的作用,开启水印功能后,系统会自动为用户上传的 JPG/PNG/GIF 图片附件添加水印,这里包括文章、论坛和空间相册的水印设置。
工具/原料
Discuz! X1.5
步骤/方法
1
1、水印的开启。请在此选择水印添加的位置(3x3 共 9 个位置可选)。不支持动画 GIF 格式。
2
2、水印添加条件。设置水印添加的条件,小于此尺寸的图片附件将不添加水印。
3
3、水印图片类型:共有三种类型,GIF类型、PNG类型和文本类型水印。
1)如果设置 GIF 类型的文件作为水印,水印图片为 static/image/common/watermark.gif。
2)如果设置 PNG 类型的文件作为水印,水印图片为 static/image/common/watermark.png。
你可替换水印文件以实现不同的水印效果,比如改为自己想要的图片。
3)如果设置文本类型的水印并且使用 GD 图片处理库,那么还需要 FreeType 库支持才能使用。
4
4、水印融合度。设置 GIF 类型水印图片与原始图片的融合度,范围为 1~100 的整数,数值越大水印图片透明度越低。PNG 类型水印本身具有真彩透明效果,无须此设置。本功能需要开启水印功能后才有效。
5
5、JPEG 水印质量。设置 JPEG 类型的图片附件添加水印后的质量参数,范围为 0~100 的整数,数值越大结果图片效果越好,但尺寸也越大。本功能需要开启水印功能后才有效。
6
6、文本水印文字。如果你指定的 TrueType 字体为中文字体文件,那么你可以在文本水印中书写中文。
7
7、文本水印 TrueType 字体文件名。填写存放在 static/image/seccode/font/ch/ 或 static/image/seccode/font/en/ 目录下的 TTF 字体文件,支持中文字体。如使用中文 TTF 字体请使用包含完整中文汉字的字体文件。
8、文本水印字体大小。设置文本水印字体大小,请按照字体设置相应的大小。
9、文本水印显示角度。0 度为从左向右阅读文本。
10.文本水印字体颜色。可以直接选择颜色,也可以输入 16 进制颜色代表文本水印字体颜色。
11、文本水印阴影横向偏移量。设置文本水印阴影横向偏移量,此数值不宜设置的太大。
12、文本水印阴影纵向偏移量。设置文本水印阴影纵向偏移量,此数值不宜设置的太大。
13、文本水印阴影颜色。可以直接选择颜色,也可以输入 16 进制颜色代表文本水印阴影字体颜色。
14、文本水印横向偏移量(ImageMagick)。设置水印文本输出后向屏幕中央的横向的偏移值。本设置只适用于 ImageMagick 图片处理库。
15、文本水印纵向偏移量(ImageMagick)。设置水印文本输出后向屏幕中央的纵向的偏移值。本设置只适用于 ImageMagick 图片处理库。
16、文本水印横向倾斜角度(ImageMagick)。设置水印文本横向的倾斜角度。本设置只适用于 ImageMagick 图片处理库。
17、文本水印纵向倾斜角度(ImageMagick)。设置水印文本纵向的倾斜角度。本设置只适用于 ImageMagick 图片处理库。
关于discuz透明水印源码和discuz水印设置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。