文档库 最新最全的文档下载
当前位置:文档库 › C#生成缩略图片

C#生成缩略图片

C#生成缩略图片
C#生成缩略图片

using System.IO;

using System.Drawing;

using System.Drawing.Imaging;

///

/// 图片处理类

/// 1、生成缩略图片或按照比例改变图片的大小和画质

/// 2、将生成的缩略图放到指定的目录下

///

public class ImageClass

{

public Image ResourceImage;

private int ImageWidth;

private int ImageHeight;

public string ErrMessage;

///

/// 类的构造函数

///

/// 图片文件的全路径名称 public ImageClass(string ImageFileName)

{

ResourceImage=Image.FromFile(ImageFileName);

ErrMessage= " ";

}

public bool ThumbnailCallback()

{

return false;

}

///

/// 生成缩略图重载方法1,返回缩略图的Image对象

///

/// 缩略图的宽度

/// 缩略图的高度

/// 缩略图的Image对象

public Image GetReducedImage(int Width,int Height)

{

try

{

Image ReducedImage;

Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

ReducedImage=ResourceImage.GetThumbnailImage(Width,Height,callb,IntPtr.Zero);

return ReducedImage;

}

catch(Exception e)

{

ErrMessage=e.Message;

return null;

}

}

///

/// 生成缩略图重载方法2,将缩略图文件保存到指定的路径

///

/// 缩略图的宽度

/// 缩略图的高度

/// 缩略图保存的全文件名,(带路径),参数格式:D:\Images\filename.jpg

/// 成功返回true,否则返回false

public bool GetReducedImage(int Width,int Height,string targetFilePath)

{

try

{

Image ReducedImage;

Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

ReducedImage=ResourceImage.GetThumbnailImage(Width,Height,callb,IntPtr.Zero); ReducedImage.Save(@targetFilePath,ImageFormat.Jpeg);

ReducedImage.Dispose();

return true;

}

catch(Exception e)

{

ErrMessage=e.Message;

return false;

}

}

///

/// 生成缩略图重载方法3,返回缩略图的Image对象

///

/// 缩略图的宽度百分比如:需要百分之80,就填0.8

/// 缩略图的Image对象

public Image GetReducedImage(double Percent)

{

try

{

Image ReducedImage;

Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

ImageWidth=Convert.ToInt32(ResourceImage.Width*Percent);

ImageHeight=Convert.ToInt32(ResourceImage.Width*Percent);

ReducedImage=ResourceImage.GetThumbnailImage(ImageWidth,ImageHeight,callb,IntPtr.Zero);

return ReducedImage;

}

catch(Exception e)

{

ErrMessage=e.Message;

return null;

}

}

///

/// 生成缩略图重载方法4,返回缩略图的Image对象

///

/// 缩略图的宽度百分比如:需要百分之80,就填0.8

/// 缩略图保存的全文件名,(带路径),参数格式:D:\Images\filename.jpg

/// 成功返回true,否则返回false

public bool GetReducedImage(double Percent,string targetFilePath)

{

try

{

Image ReducedImage;

Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

ImageWidth=Convert.ToInt32(ResourceImage.Width*Percent);

ImageHeight=Convert.ToInt32(ResourceImage.Width*Percent);

ReducedImage=ResourceImage.GetThumbnailImage(ImageWidth,ImageHeight,callb,IntPtr.Zero); ReducedImage.Save(@targetFilePath,ImageFormat.Jpeg);

ReducedImage.Dispose();

return true;

}

catch(Exception e)

{

ErrMessage=e.Message;

return false;

}

}

}

如何能让Java生成复杂Word文档(1)

先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker 模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。 AD:客户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈。 POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。 iText操作Excel还行。对于复杂的大量的word也是噩梦。 直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。 Word从2003开始支持XML格式,用XML还做就很简单了。 大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml 翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。 看看实际效果 首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中红线的部分就是我要输出的部分:

将编辑好的文档另存为XML 再用Firstobject free XML editor将xml中我们需要填数据的地方打上FreeMarker标记

PHP使用imagick读取PDF生成png缩略图的两种方法

这篇文章主要介绍了PHP使用imagick读取PDF第一页生成png缩略图的两种方法,使用了PHP扩展php_imagick,需要的朋友可以参考下 一、ImageMagick是什么 ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD 等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。 二、php_imagick什么 一个可以供PHP调用ImageMagick功能的PHP扩展。使用这个扩展可以使PHP具备和ImageMagick相同的功能。 三、PDF生成png缩略图的两种方法 第一种: 代码如下:/** * PDF2PNG * @param $pdf 待处理的PDF文件 * @param $path 待保存的图片路径 * @param $page 待导出的页面-1为全部0为第一页1为第二页 * @return 保存好的图片路径和文件名 */ function pdf2png($pdf,$path,$page=0) { if(!is_dir($path)) { mkdir($path,true); } if(!extension_loaded('imagick')) { echo '没有找到imagick!' ; return false; } if(!file_exists($pdf)) { echo '没有找到pdf' ; return false; } $im = new Imagick(); $im->setResolution(120,120); //设置图像分辨率 $im->setCompressionQuality(80); //压缩比 $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页 //$im->thumbnailImage(200, 100, true); // 改变图像的大小 $im->scaleImage(200,100,true); //缩放大小图像

图片缩略图和原图不一样

图片缩略图和原图不一样 在正常情况下一个图片和它的缩略图应该是一样的,但是在有的时候会出现图片和缩 略图完全不一样的情况。也就是说用Windows自带的图片查看器看到的图片是一个样子,而 这些图片在文件夹中“预浏览”或者“缩略图”看到的却是完全另一个样子。 出现这种情况是因为在Windows缩略图中有一个Bug,利用这个Bug,Exifer就能够轻松 制作图片和缩略图不同的图片。 一、缩略图原理 这是什么原理呢?因为现在JPEG的文件采用了压缩的方式,其过程比较复杂。为了能 让大家快速查看其缩略图,JPEG标准在文件中记录了一些EXIF 信息。数码照相机拍出的图 片带有相机的很多参数,这都属于EXIF信息,其中缩略图也是一部分。缩略图是一幅较小 的JPEG图片,存储在EXIF信息段。支持EXIF信息内嵌缩略图数据库的片格式的图片除了JP EG格式(.jpg、.jpeg、.jpe),还有PSD、PDD、EPS、TIF、TIFF 等格式。 而Windows在第一次显示缩略图时先读当前目录中的“Thum

bs.db”这个文件,其实这 是一个缩略图数据库,从而来判断是否有该图片的缩略图。如果不存在“Thumbs.db”文件 或者该库中不存在该图片的缩略图,那么Windows会尝试取图片中的EXIF信息,判断是否存 在缩略图数据。如果图片中EXIF信息中不存在缩略图信息或信息错误,那么Windows就会用 插值的方法重新生成缩略图(如果可能则保存到当前目录中的“Th umbs.db”缩略图数据库 中)。 二、如何制作缩略图 了解了这些,既然知道原理,那么我们能否也做出这样的图片呢?其实很简单,只需 通过修改EXIF信息中的缩略图信息达到上面那种奇异的效果了。那么用什么软件能够修改 EXIF信息呢?这里笔者给大家介绍一款名字为Exifer 软件,通过它就可以很轻松的修改E XIF信息。 第一步:首先打开Exifer,选择要进行添加要修改的图片(图1)。 第二步:图片添加好之后,会在右边EXIF thumbnail中看到图片的缩略图,这时候按鼠标

Java 图片处理 格式转换

Java 图片处理(包括 Jmagick 的应用) 图片处理( 的应用)
作者: 佚名, 出处:IT 专家网,
2010-10-29 08:30
责任编辑: 谢妍妍,
近期有使用到图片的压缩处理,由于在之前用 Java 处理时,在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
近期有使用到图片的压缩处理, 由于在之前用 Java 处理时, 在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
1、纯 Java 类处理图片代码
Java 代码
以下是代码片段: 以下是代码片段: /** * 转换图片大小,不变形 * * @param img * 图片文件 * @param width * 图片宽 * @param height * 图片高 */ public static void changeImge(File img, int width, int height) { try { Image image = ImageIO.read(img); //图片尺寸的大小处理, 如果长宽都小于规定大小, 则返回, 如果有一个大于规定大小, 则等比例缩放 int srcH = image.getHeight(null); int srcW = image.getWidth(null); if (srcH <= height && srcW <= width) { return;

java实现将图片和缩略图存储到数据库中

public class PicCreateCtrl extends HttpServlet{ public PicCreateCtrl(){ super(); } public void destroy(){ super.destroy();//Just puts"destroy"string in log //Put your code here } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doPost(request,response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ response.setContentType("text/html;charset=gb2312"); PrintWriter out=response.getWriter(); SmartUpload mySmartUpload=new SmartUpload();//creat new SmartUpload object long file_size_max=10000000;//the bigest size of file String fileExt=""; String url="temp/";//the path of save upload file mySmartUpload.initialize(this.getServletConfig(),request,response); try{ mySmartUpload.setAllowedFilesList("png,emf,bmp,jpg,gif,BMP,JPG,GIF,PN G,EMF"); //上载文件 mySmartUpload.upload(); }catch(Exception e){ e.printStackTrace(); out.print(""); } try{ BaseduManager manager=new BaseduManager(); File myFile=mySmartUpload.getFiles().getFile(0); String xh=mySmartUpload.getRequest().getParameter("xcxh"); if(myFile.isMissing()){ out.print("