C#缩略图多路径多格式保存的实例
程序员文章站
2023-12-20 12:50:40
复制代码 代码如下:using system;using system.drawing;namespace publib{ /// ...
复制代码 代码如下:
using system;
using system.drawing;
namespace publib
{
/// <summary>
/// picshow 的摘要说明。
/// </summary>
public class picshow
{
public picshow()
{
//
// todo: 在此处添加构造函数逻辑
//
}
//查找图片文件是否存在
public static string viewpic(string picpath, string picname)
{
string bigpic = checks.hm_physicsroot + "moviepic/"+checks.hm_picrootpath+"/"+picname;
string smlpic = checks.hm_physicsroot + "moviepic/"+picpath+"/"+picname;
if (null==picname || false==system.io.file.exists(bigpic)) //大图名称为空或文件不存在
picname = "nopic.jpg";
string outpic = "moviepic/"+picpath+"/"+picname;
if (!system.io.file.exists(smlpic)) //查找小图不存在
{
createpic(picpath, picname);
return outpic;
}
return outpic;
}
//创建缩略图
public static void createpic(string picpath, string picname)
{
int iwidth,iheight;
if (null!=picpath && picpath.indexof("x")>1)
{
char[] spliter = {x};
string[] apicpath = picpath.split(spliter,2);
iwidth = int32.parse(apicpath[0]);
iheight = int32.parse(apicpath[1]);
string bigpic = checks.hm_physicsroot + "moviepic/"+checks.hm_picrootpath+"/"+picname;
string smlpic = checks.hm_physicsroot + "moviepic/"+picpath+"/"+picname;
image bigimage = image.fromfile(bigpic);
image smlimage = bigimage.getthumbnailimage(iwidth,iheight,null,new system.intptr());
smlimage.save(smlpic,system.drawing.imaging.imageformat.jpeg);
bigimage.dispose();
smlimage.dispose();
}
}
}
}
checks.hm_physicsroot 是一个静态变量是系统的根路径,你问怎么获得?其实很简单你可以直接写个路径给它。虽然不灵活但也还算简单。我是这么搞的
public static string hm_physicsroot = appdomain.currentdomain.basedirectory;
(其实也简单顾弄玄虚:~)
多路径,也就是说的有点吓人而已,你在生成缩略图的时候指定一个路径就可以了。就是这个参数picpath是要你手工指定的,多格式说白了就是大小可以调整。我的方法是路径就是大小,比如200*300的图片路径就叫200x300嘿嘿,当然要指定一个图片原始路径,不然从那里得到图片来生成缩略啊。这个checks.hm_picrootpath就只能手写了,没什么办法。反正一次写了以后也不改动了。
推荐阅读