- 浏览: 648982 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
package com.mxo9.b2c.service.administration.impl.goodstrading.goods; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.MediaTracker; import java.awt.image.BufferedImage; import java.awt.image.ConvolveOp; import java.awt.image.Kernel; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class AlterUploadImage { String inputDir; //源图片的绝对路径,不包含图片的文件名 String outputDir; //目标图片的绝对路径,不包含图片的文件名 String inputFileName; //源图片文件名 String outputFileName; //目标图片的文件名 int outputWidth; //目标图片的宽 int outputHeight; //目标图片的高 boolean proportion = true; //是否等比例缩放 private String inputFileUrl;//源图片的绝对路径,包含文件名 private String outputFileUrl;//目标图片的绝对路径,包含文件名 private String tempUrl; /** * 初始化修改图片大小的参数 * @param inputDir 源图片的绝对路径,不包含图片的文件名 * @param outputDir 目标图片的绝对路径,不包含图片的文件名 * @param inputFileName 源图片文件名 * @param outputFileName 目标图片的文件名 * @param outputWidth 目标图片的宽 * @param outputHeight 目标图片的高 * @param proportion 是否等比例缩放 */ public AlterUploadImage(String inputDir, String outputDir, String inputFileName, String outputFileName, int outputWidth, int outputHeight, boolean proportion) { this.inputDir=inputDir; this.outputDir=outputDir; this.inputFileName= inputFileName; this.outputFileName=outputFileName; this.outputWidth=outputWidth; this.outputHeight=outputHeight; this.proportion=proportion; } public AlterUploadImage() { inputDir=""; outputDir=""; inputFileName=""; outputFileName=""; outputWidth=100; outputHeight=100; proportion=true; } public boolean alterImageSize() throws IOException { //构造源、目标图片的路径 inputFileUrl=inputDir+inputFileName; outputFileUrl=outputDir+outputFileName; createDir(outputDir); try { Image image = javax.imageio.ImageIO.read(new File(inputFileUrl)); int imageWidth = image.getWidth(null); int imageHeight = image.getHeight(null); float scale = getRatio(imageWidth,imageHeight,outputWidth,outputHeight); imageWidth = (int)(scale*imageWidth); imageHeight = (int)(scale*imageHeight); image = image.getScaledInstance(imageWidth, imageHeight, Image.SCALE_AREA_AVERAGING); // Make a BufferedImage from the Image. BufferedImage mBufferedImage = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB); Graphics2D g2 = mBufferedImage.createGraphics(); g2.drawImage(image, 0, 0,imageWidth, imageHeight, Color.white,null); g2.dispose(); float[] kernelData2 = {-0.125f,-0.125f,-0.125f,-0.125f,2,-0.125f,-0.125f,-0.125f,-0.125f}; Kernel kernel = new Kernel(3, 3, kernelData2); ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null); mBufferedImage = cOp.filter(mBufferedImage, null); FileOutputStream out = new FileOutputStream(outputFileUrl); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(mBufferedImage); out.close(); return true; }catch (Exception ioe){ return false; } finally{ } //return ThumbnailUtil.creatThumbnail(inputFileUrl, outputFileUrl, outputWidth, outputHeight); // File fileOut = new File(tempUrl); // File fileIn = new File(inputFileUrl); // FileOutputStream tempout = null; // try { // tempout = new FileOutputStream(fileOut); // } catch (Exception ex) { // System.out.println(ex.toString()); // } // Image img = null; // Applet app = new Applet(); // MediaTracker mt = new MediaTracker(app); // try { // img = javax.imageio.ImageIO.read(fileIn); // mt.addImage(img, 0); // mt.waitForID(0); // } catch (Exception e) { // e.printStackTrace(); // } // if (img.getWidth(null) == -1) { // return false; // } else { // int new_w; // int new_h; // if (this.proportion == true) {//判断是否等比例缩放 // //计算比率 // double rate1 = ((double) img.getWidth(null)) / (double) outputWidth + 0.1; // double rate2 = ((double) img.getHeight(null)) / (double) outputHeight + 0.1; // double rate = rate1 > rate2 ? rate1 : rate2; // new_w = (int) (((double) img.getWidth(null)) / rate); // new_h = (int) (((double) img.getHeight(null)) / rate); // } else { // new_w = outputWidth; //宽 // new_h = outputHeight; //高 // } // BufferedImage buffImg = new BufferedImage(new_w, new_h, // BufferedImage.TYPE_INT_RGB); // // Graphics g = buffImg.createGraphics(); // // g.setColor(Color.white); // g.fillRect(0, 0, new_w, new_h); // // g.drawImage(img, 0, 0, new_w, new_h, null); // g.dispose(); // JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout); // try { // encoder.encode(buffImg); // tempout.close(); // } catch (IOException ex) { // System.out.println(ex.toString()); // } // } // createThumbImg(outputWidth,outputHeight); // fileOut.delete(); // return true; } public static float getRatio(int width,int height,int maxWidth,int maxHeight){ float Ratio = 1.0f; float widthRatio ; float heightRatio ; widthRatio = (float)maxWidth/width; heightRatio = (float)maxHeight/height; if(widthRatio<1.0 || heightRatio<1.0){ Ratio = widthRatio<=heightRatio?widthRatio:heightRatio; } return Ratio; } //文亮,2009/07/15 public boolean alterImageSizeForFriendLink() throws IOException { //构造源、目标图片的路径 inputFileUrl=inputDir+inputFileName; outputFileUrl=outputDir+outputFileName; tempUrl=outputDir+outputFileName; createDir(tempUrl); File fileOut = new File(tempUrl); File fileIn = new File(inputFileUrl); FileOutputStream tempout = null; try { tempout = new FileOutputStream(fileOut); } catch (Exception ex) { System.out.println(ex.toString()); } Image img = null; Applet app = new Applet(); MediaTracker mt = new MediaTracker(app); try { img = javax.imageio.ImageIO.read(fileIn); mt.addImage(img, 0); mt.waitForID(0); } catch (Exception e) { e.printStackTrace(); } if (img.getWidth(null) == -1) { return false; } else { int new_w; int new_h; if (this.proportion == true) {//判断是否等比例缩放 //计算比率 double rate1 = ((double) img.getWidth(null)) / (double) outputWidth + 0.1; double rate2 = ((double) img.getHeight(null)) / (double) outputHeight + 0.1; double rate = rate1 > rate2 ? rate1 : rate2; new_w = (int) (((double) img.getWidth(null)) / rate); new_h = (int) (((double) img.getHeight(null)) / rate); } else { new_w = outputWidth; //宽 new_h = outputHeight; //高 } BufferedImage buffImg = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB); Graphics g = buffImg.createGraphics(); //g.setColor(Color.white); g.fillRect(0, 0, new_w, new_h); g.drawImage(img, 0, 0, new_w, new_h, null); g.dispose(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout); try { encoder.encode(buffImg); tempout.close(); } catch (IOException ex) { System.out.println(ex.toString()); } } return true; } //文亮,2009/07/15,图片批量处理 public boolean alterImageSizeForPicBatch() throws IOException { //构造源、目标图片的路径 inputFileUrl=inputDir+inputFileName; outputFileUrl=outputDir+outputFileName; tempUrl=outputDir+"temp"+outputFileName; createDir(tempUrl); File fileOut = new File(tempUrl); File fileIn = new File(inputFileUrl); FileOutputStream tempout = null; try { tempout = new FileOutputStream(fileOut); } catch (Exception ex) { System.out.println(ex.toString()); } Image img = null; Applet app = new Applet(); MediaTracker mt = new MediaTracker(app); try { img = javax.imageio.ImageIO.read(fileIn); mt.addImage(img, 0); mt.waitForID(0); } catch (Exception e) { e.printStackTrace(); } if (img.getWidth(null) == -1) { return false; } else { int new_w; int new_h; if (this.proportion == true) {//判断是否等比例缩放 //计算比率 double rate1 = ((double) img.getWidth(null)) / (double) outputWidth + 0.1; double rate2 = ((double) img.getHeight(null)) / (double) outputHeight + 0.1; double rate = rate1 > rate2 ? rate1 : rate2; new_w = (int) (((double) img.getWidth(null)) / rate); new_h = (int) (((double) img.getHeight(null)) / rate); } else { new_w = outputWidth; //宽 new_h = outputHeight; //高 } BufferedImage buffImg = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB); Graphics g = buffImg.createGraphics(); g.setColor(Color.white); g.fillRect(0, 0, new_w, new_h); g.drawImage(img, 0, 0, new_w, new_h, null); g.dispose(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout); try { encoder.encode(buffImg); tempout.close(); } catch (IOException ex) { System.out.println(ex.toString()); } } //createThumbImg(outputWidth,outputHeight); //fileOut.delete(); return true; } /** * 该方法用于对生成的图片进一步处理,处理的要求就是创建一个高度为参数outputHeight宽度为outputWidth的图像,其背景色为白色,然后将生成的图片放在该图像的中央 * 以创建一张新图片 * @param width 新图片的宽度 * @param height 新图片的高度 * @throws IOException */ public void createThumbImg(int width,int height) throws IOException{ int startX=0; int startY=0; int[] ImageArrayOne=new int[width*height]; for(int i=0;i<ImageArrayOne.length;i++){ ImageArrayOne[i]=Color.WHITE.getRGB(); } //对第二张图片做相同的处理 File fileTwo = new File(tempUrl); BufferedImage ImageTwo = ImageIO.read(fileTwo); int imgWidth = ImageTwo.getWidth();//图片宽度 int imgHeight = ImageTwo.getHeight();//图片高度 int[] ImageArray = new int[imgWidth*imgHeight]; ImageArray = ImageTwo.getRGB(0,0,imgWidth,imgHeight,ImageArray,0,imgWidth); startX=(width-imgWidth)/2; startY=(height-imgHeight)/2; //生成新图片 BufferedImage ImageNew = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); ImageNew.setRGB(0,0,width,height,ImageArrayOne,0,width);//设置背景色为白色 ImageNew.setRGB(startX,startY,imgWidth,imgHeight,ImageArray,0,imgWidth);//将缩略图置于最上面 File outFile = new File(outputFileUrl); ImageIO.write(ImageNew, outputFileUrl.substring(outputFileUrl.lastIndexOf(".")+1), outFile);//写图片 } private void createDir(String path){ String realPath; try{ realPath=path.substring(0,path.lastIndexOf("/")); } catch(Exception e){ realPath=path.substring(0,path.lastIndexOf("\\")); } File dir=new File(realPath); dir.mkdirs(); } public String getInputDir() { return inputDir; } public void setInputDir(String inputDir) { this.inputDir = inputDir; } public String getOutputDir() { return outputDir; } public void setOutputDir(String outputDir) { this.outputDir = outputDir; } public String getInputFileName() { return inputFileName; } public void setInputFileName(String inputFileName) { this.inputFileName = inputFileName; } public String getOutputFileName() { return outputFileName; } public void setOutputFileName(String outputFileName) { this.outputFileName = outputFileName; } public int getOutputWidth() { return outputWidth; } public void setOutputWidth(int outputWidth) { this.outputWidth = outputWidth; } public int getOutputHeight() { return outputHeight; } public void setOutputHeight(int outputHeight) { this.outputHeight = outputHeight; } public boolean isProportion() { return proportion; } public void setProportion(boolean proportion) { this.proportion = proportion; } public String getInputFileUrl() { return inputFileUrl; } public void setInputFileUrl(String inputFileUrl) { this.inputFileUrl = inputFileUrl; } public String getOutputFileUrl() { return outputFileUrl; } public void setOutputFileUrl(String outputFileUrl) { this.outputFileUrl = outputFileUrl; } }
发表评论
-
强引用、软引用、弱引用和虚引用
2018-06-06 16:37 376Java 如何有效地避免OOM:善于利用软引用和弱引用 ... -
使用Spring实现读写分离( MySQL实现主从复制)
2018-05-17 11:46 500使用Spring实现读写分离( MySQL实现主从复制) ... -
工作流activiti
2018-04-18 15:52 366Activiti工作流教程 https://blog.cs ... -
java的动态代理机制详解
2017-12-22 15:54 353https://www.cnblogs.c ... -
OCR框架整理
2017-08-16 09:29 531泰比ABBYY OCR SDK开发包 Asp ... -
eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
2017-04-06 16:54 595发布工程后,启动tomcat出现如下内存溢出错误: java ... -
springMVC上传文件大小限制以及超过限制后的自定义处理
2017-04-01 08:12 1187http://blog.csdn.net/baidu_186 ... -
IntelliJ IDEA 2016注册方法和注册码
2017-03-30 13:52 2469IntelliJ IDEA号称当前Java开发效率最高的ID ... -
java使用wsimport生成服务代码时报错的解决办法
2017-01-18 11:27 1634今天遇到了WebService的问题:在使用jdk命令wsi ... -
OCR文字识别系统
2016-12-21 22:14 383慧视OCR文字识别系统 增值税专用发票扫描识别系统 ... -
Maven中央仓库无法更新jar包的解决办法
2016-12-09 00:44 1024删掉了*lastUpdated文件 然后到setti ... -
spring jar包下载地址
2015-09-23 17:31 587spring jar包下载地址:http://maven.sp ... -
JRex java webbrowser 爬虫ajax网页 源码
2015-01-08 16:37 930一般在浏览器中查看页面代码 是浏览器直接下载到的页面代码 在 ... -
程序员福利各大平台免费接口,非常适用
2014-12-03 10:03 840电商接口 京东获取单个商品价格接口: http: ... -
数据库建模工具:PowerDesigner与Rose详解教程
2009-12-08 12:38 1810一、 二者的出身 作为世界最著名的两大CASE工具, ... -
MD5、SHA加密实体类
2009-08-02 17:37 1164public class MD5Utility { ... -
des加密解密实体类
2009-08-02 17:21 1324/** * DES加密解密类. ... -
Windows客户端的JProfiler远程监控Linux上的Tomcat
2009-07-20 12:23 27381.测试环境 服务器:ubuntu8.04(内核版本 2.6. ... -
Jalopy在Eclipse下的使用
2009-07-13 17:47 1571Jalopy是一款代码美化工 ... -
使用Jconsole监视tomcat
2009-07-08 11:50 1615可以分一下几个步骤进行: 第一步: 修改tomcat的ca ...
相关推荐
java结合gdal对大图片进行重采样,代码主要功能为制作缩略图,可以对较大的图片进行压缩处理,解决java不能处理太大文件的问题
6.3 实例——利用JSP制作图片缩略图 87 6.4 小结 90 第7章 JSTL——JSP标准标签库 91 7.1 JSTL基础 91 7.1.1 JSTL的核心标签库 92 7.1.2 JSTL中使用表达式语言 93 7.2 实例——利用JSTL标签生成数字序列...
3、自动建立图片缩略图功能。 4、幻灯片(Slideshow)、分页(Pagination)、统计(Statistics)、评分(Rating) 等相册基本功能一应俱全。 5、具备水印(Watermark)功能,省去一一加入的繁琐动作,在制作缩略图时同时加入...
使用道具时可以通过支付宝和微信支付购买道具,我的消费记录,我的订单列表,主题收益统计,提现申请,提现申请列表 9、帖子图片上传后自动生成缩略图功能,点击缩略图查看大图 10、新增微信用户快速登录论坛功能...
SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对...
使用道具时可以通过支付宝和微信支付购买道具,我的消费记录,我的订单列表,主题收益统计,提现申请,提现申请列表 9、帖子图片上传后自动生成缩略图功能,点击缩略图查看大图 10、新增微信用户快速登录论坛功能...
ABBRIMAGE 缩略图 ADO OLE DB数据库 API Windows API封装 ASG AdvStringGrid CALLJAVA 调用Java的Class CLIPBOARD 剪贴板 COMMANDLINE 命令行 COMPONENT 组件封装 DATAEXPORT 数据导出向导和功能 DATAIMPORT 数据...
软件最大的特色是,用户只需将文件夹中的图像和电影文件放入JAlbum ,然后该软件则会为你的图像创建一个缩略图,并将它们在一个HTML索引页中显示出来。另外,使用拖放操作来添加新的照片,或对其进行排序。创建...
jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单...121.上传图片并生成缩略图?
添加或修改文章时,可设置文档所属栏目、标题、外部链接、副标题、标题颜色、短标题、自动Tag标签、摘要、来源、来源链接、作者、文档类型、文档属性、推荐、置顶、缩略图、文档内容、内容显示模板、发布时间等,...
上传图片并生成缩略图? 122.JS实现图形菜单中点击当前图片变另一幅图片? 123.无刷新页面自动刷新? 124.写文件? 125.怎么得到鼠标点击在线图片的位置坐标? 126.页面单线程? 127.数字转中文 ...
DWG:AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式 DXR:Macromedia Director受保护(不可编辑)电影文件 E EDA:Ensoniq ASR磁盘映像 EDD:元素定义文档(FrameMaker+SGML文档) EDE:Ensoniq ...
鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署...