WEB ImgHelper 1.00发布 大家多提意见啊 功能:实现图片上传缩略图等等http://blog.csdn.net/gzy11/archive/2009/04/23/4103006.aspx第一次写类库见笑了 肯定有许多不足之处希望大家能够指正 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要是能做个DEMO提供下载就更好了 呵呵 等等啊 天天太忙了 只是大概写了下我参考的MSDN 和开源项目的一些技巧 写得挺规范,支持一下ps:为什么都喜欢在个人Id后面加个11? Authentication 这个方法 老是觉得 out 泛型 和返回 BOOL型的用起来不是很顺手但目前没想到更好的方式来 写这个东西 是否把文件上传的部分做成抽象的或者是虚拟的,因为使用者不一定使用内置的上传控件,毕竟.net的上传空间局限性太大。或者分成2个控件,上传(包含检测和验证,只需返回 FileInfo 就可以了)和图片处理部分。如果有一个类似这样的方法ProcessImage(processtype,processvalue,precision),其中,processtype 可以是按比例或者是固定宽度或者固定高度,processvalue是processtype 的值,precision是图像的质量,可以类似jpg的从1~100.这样使用起来就会方便很多。呵呵~,只是随便说说,LZ做的很不错了,继续加油喔~ 应该先做个在线DEMO,这样大家方便试用 这个饺子包的有点散啊1.你关注了太多原本不该关注的事情,像文件路径检测,提取后缀,生成文件名--------这些通用方法实际并不应该出现在这里,如果你要提供最好单独封到一个静态类,因为基本上这些方法的特性是与项目无关,与实例无关,可以随处调用,正好适合做成静态类2.你第一步那个抽象 struct imgSize 很好,但是你没有继续下去这样吧,我按照你这个抽象的思路,顺着写过去,写到那算哪,我就不做具体优化了(一步考虑下来,多少是有bug滴)public interface IThumbMode //计算缩略图接口{ Image _originaImage { get; set; } //原始图片 int width { get; } //缩略图的高 int height { get; } //缩略图的宽 void makeWH(); //计算缩略图的宽高} public class imgTools{ public static Image makeThumbImg(IThumbMode mode)//类似抽象工厂,按情况也可以考虑模板或策略模式 { var oimg = mode._originaImage; var res = oimg.GetThumbnailImage(mode.width, mode.height, null, new IntPtr()); return res; } }public class ThumbBySize:IThumbMode //按文件size缩略{ private long filesize; public LockSize(string path,long filesize) { _originaImage = Image.FromFile(path); this.filesize = filesize; makeWH(); } #region IThumbMode 成员 public Image _originaImage { get; set; } private int m_width; public int width { get { return m_width; } } private int m_height; public int height { get { return m_height; } } public void makeWH() { System.IO.MemoryStream ms = new System.IO.MemoryStream(); _originaImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); var osize = ms.Length; if (osize <= filesize) return; else { m_width = Convert.ToInt32(_originaImage.Width * filesize / osize); m_height = Convert.ToInt32(_originaImage.Height * filesize / osize); } } #endregion 不错,来学习。做好做个在线的DEMO,这样方便大家测试 [求救]gridview导出之后身份证号是科学计数法 公司有个内部网站,想搞个学习系统如何搞? C#操作excel 如何将单元格内容设置为支持html格式的文本?能做到吗? 查询系统 有时候 条件选择 无效 请问静态变量怎么用? 求Sql语句? ASP.NET插入到ACCESS数据库问题 急问:怎么将DateTime只取年月日??? 如何将数字转换为 16进制 HEX 在这里问个sql,想来没问题 安装了.net之后 什么类型的文件可以被执行?? sQL 显示问题,,,急急
我参考的MSDN 和开源项目的一些技巧
但目前没想到更好的方式来 写这个东西
这样使用起来就会方便很多。呵呵~,只是随便说说,LZ做的很不错了,继续加油喔~
1.你关注了太多原本不该关注的事情,像文件路径检测,提取后缀,生成文件名--------这些通用方法实际并不应该出现在这里,如果你要提供最好单独封到一个静态类,因为基本上这些方法的特性是与项目无关,与实例无关,可以随处调用,正好适合做成静态类
2.你第一步那个抽象 struct imgSize 很好,但是你没有继续下去这样吧,我按照你这个抽象的思路,顺着写过去,写到那算哪,我就不做具体优化了(一步考虑下来,多少是有bug滴)public interface IThumbMode //计算缩略图接口
{
Image _originaImage { get; set; } //原始图片
int width { get; } //缩略图的高
int height { get; } //缩略图的宽
void makeWH(); //计算缩略图的宽高
}
public class imgTools
{
public static Image makeThumbImg(IThumbMode mode)//类似抽象工厂,按情况也可以考虑模板或策略模式
{
var oimg = mode._originaImage;
var res = oimg.GetThumbnailImage(mode.width, mode.height, null, new IntPtr());
return res;
}
}public class ThumbBySize:IThumbMode //按文件size缩略
{
private long filesize;
public LockSize(string path,long filesize)
{
_originaImage = Image.FromFile(path);
this.filesize = filesize;
makeWH();
} #region IThumbMode 成员 public Image _originaImage
{
get;
set;
} private int m_width;
public int width
{
get { return m_width; }
} private int m_height;
public int height
{
get { return m_height; }
} public void makeWH()
{
System.IO.MemoryStream ms = new System.IO.MemoryStream();
_originaImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); var osize = ms.Length;
if (osize <= filesize)
return;
else
{
m_width = Convert.ToInt32(_originaImage.Width * filesize / osize);
m_height = Convert.ToInt32(_originaImage.Height * filesize / osize);
}
} #endregion
做好做个在线的DEMO,这样方便大家测试