///
/// 上传本地图片,同时生成缩略图(可选)
///
/// FileUpload控件
/// 本模块的保存路径
/// 缩略图宽度
/// 缩略图高度
/// 标识是否要生成缩略图(0--是,1--否)
///
public static string ImageSave(FileUpload fudImage, int width, int height)
{
string strResult = string.Empty;
try
{
//当前日时
string strAllTime = System.DateTime.Now.ToString("yyyyMMddhhmmss");
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(fudImage.FileName).ToLower();
//取得实际保存地址
string normalPath = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["NormalPa th"]);
//缩略图保存路径
string thumbnailPath = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["Thumbnai lPath"]);
if (!File.Exists(normalPath)) //如果/up_flie/Album/不存在,则创建/up_flie/Album/,用于存放缩略图
{
System.IO.Directory.CreateDirectory(normalPath);
}
FileInfo file = new FileInfo(strAllTime + fileExtension); //FileInfo对象表示磁盘或网络位置上的文件。提供文件的路径,就可以创建一个FileInfo对象
string webFilePathNor = normalPath + "/" + https://www.wendangku.net/doc/8015058559.html,; //源图上传路径
string webFilePathThumb = thumbnailPath + "/" + https://www.wendangku.net/doc/8015058559.html,; //缩略图的保存路径
fudImage.SaveAs(webFilePathNor); //保存源图
if (!File.Exists(thumbnailPath))
{
System.IO.Directory.CreateDirectory(thumbnailPath);
}
MakeThumbnail(webFilePathNor, webFilePathThumb, width, height, "Cut"); //生成保存缩略图
strResult = ConfigurationManager.AppSettings["ThumbnailPath"] + "/" + https://www.wendangku.net/doc/8015058559.html,;
}
catch (Exception ex)
{
strResult = "LoadingError";
throw new Exception(ex.Message.ToString());
}
return strResult;
}
///
/// 生成缩略图
///
/// 源图路径(物理路径)
/// 缩略图路径(物理路径)
/// 缩略图宽度
/// 缩略图高度
/// 生成缩略图的方式
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
{
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;
switch (mode)
{
case "HW"://指定高宽缩放(可能变形)
break;
case "W"://指定宽,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,宽按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高宽裁减(不变形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
break;
}
//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
new System.Drawing.Rectangle(x, y, ow, oh),
System.Drawing.GraphicsUnit.Pixel);
try
{
//以jpg格式保存缩略图
bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (System.Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
先用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扩展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); //缩放大小图像
粉丝身份证:https://www.wendangku.net/doc/8015058559.html,/ 制作印章:https://www.wendangku.net/doc/8015058559.html,/print.php 邮址图片生成:https://www.wendangku.net/doc/8015058559.html,/email.php 条形码生成:https://www.wendangku.net/doc/8015058559.html,/barcode.php Kiss学堂颁发结业证:https://www.wendangku.net/doc/8015058559.html,/kiss/cert.php 生成头像:https://www.wendangku.net/doc/8015058559.html,/ImageDIY/DIYChooseImg.aspx?ImgSize=96x96x1邮件:https://www.wendangku.net/doc/8015058559.html,/Sevice.aspx?TypeID=1 聊天图标:https://www.wendangku.net/doc/8015058559.html,/Sevice.aspx?TypeID=2 博客图标:https://www.wendangku.net/doc/8015058559.html,/Sevice.aspx?TypeID=3 网络书签:https://www.wendangku.net/doc/8015058559.html,/Sevice.aspx?TypeID=5 朋友圈:https://www.wendangku.net/doc/8015058559.html,/Sevice.aspx?TypeID=4 按扭:https://www.wendangku.net/doc/8015058559.html,/Sevice.aspx?TypeID=11 生成拼凑图:https://www.wendangku.net/doc/8015058559.html,/letters/ 一个曰本武士刀劈出你需要的字: https://www.wendangku.net/doc/8015058559.html,/generators/animated/ninjatext.asp 生成几种卡通人物对话动态图片: https://www.wendangku.net/doc/8015058559.html,/generators/animated/talking_squirrel.asp 香烟盒生成,可以做警告图片: https://www.wendangku.net/doc/8015058559.html,/generators/cigarette_packet/generator.cig 支持多种域名的Email图标的生成:https://www.wendangku.net/doc/8015058559.html,/email/ 在线favicon生成器:https://www.wendangku.net/doc/8015058559.html,/e/favicon.cgi 支持各种类型图片的生成,可以选择设置的条件非常灵活: https://www.wendangku.net/doc/8015058559.html,/tchinese/ 支持大量中文字体签名图标生成:https://www.wendangku.net/doc/8015058559.html,/font/