1 importjava.io.*;2 importjava.awt.*;3 importjava.awt.image.*;4 importjava.awt.Graphics;5 importjava.awt.color.ColorSpace;6 importjavax.imageio.ImageIO;7 8 publicclassChangeImageSize9 {10 /***//**11 * 缩放图像12 *@paramsrcImageFile 源图像文件地址13 *@paramresult       缩放后的图像地址14 *@paramscale        缩放比例15 *@paramflag         缩放选择:true 放大; false 缩小;16 */17 publicstaticvoidscale(String srcImageFile, String result,intscale,booleanflag)18 {19 try20 {21 BufferedImage src=ImageIO.read(newFile(srcImageFile));//读入文件22 intwidth=src.getWidth();//得到源图宽23 intheight=src.getHeight();//得到源图长24 if(flag)25 {26 //放大27 width=width*scale;28 height=height*scale;29 }30 else31 {32 //缩小33 width=width/scale;34 height=height/scale;35 }36 Image image=src.getScaledInstance(width, height, Image.SCALE_DEFAULT);37 BufferedImage tag=newBufferedImage(width, height, BufferedImage.TYPE_INT_RGB);38 Graphics g=tag.getGraphics();39 g.drawImage(image,0,0,null);//绘制缩小后的图40 g.dispose();41 ImageIO.write(tag,"JPEG",newFile(result));//输出到文件流42 }43 catch(IOException e)44 {45 e.printStackTrace();46 }47 }48 49 /***//**50 * 图像切割51 *@paramsrcImageFile 源图像地址52 *@paramdescDir      切片目标文件夹53 *@paramdestWidth    目标切片宽度54 *@paramdestHeight   目标切片高度55 */56 publicstaticvoidcut(String srcImageFile, String descDir,intdestWidth,intdestHeight)57 {58 try59 {60 Image img;61 ImageFilter cropFilter;62 //读取源图像63 BufferedImage bi=ImageIO.read(newFile(srcImageFile));64 intsrcWidth=bi.getHeight();//源图宽度65 intsrcHeight=bi.getWidth();//源图高度66 if(srcWidth>destWidth&&srcHeight>destHeight)67 {68 Image image=bi.getScaledInstance(srcWidth, srcHeight, Image.SCALE_DEFAULT);69 destWidth=200;//切片宽度70 destHeight=150;//切片高度71 intcols=0;//切片横向数量72 introws=0;//切片纵向数量73 //计算切片的横向和纵向数量74 if(srcWidth%destWidth==0)75 {76 cols=srcWidth/destWidth;77 }78 else79 {80 cols=(int) Math.floor(srcWidth/destWidth)+1;81 }82 if(srcHeight%destHeight==0)83 {84 rows=srcHeight/destHeight;85 }86 else87 {88 rows=(int) Math.floor(srcHeight/destHeight)+1;89 }90 //循环建立切片91 //改进的想法:是否可用多线程加快切割速度92 for(inti=0; iJPG GIF->PNG PNG->JPG PNG->GIF(X)119 */120 publicstaticvoidconvert(String source, String result)121 {122 try123 {124 File f=newFile(source);125 f.canRead();126 f.canWrite();127 BufferedImage src=ImageIO.read(f);128 ImageIO.write(src,"JPG",newFile(result));129 }130 catch(Exception e)131 {132 //TODO Auto-generated catch block133 e.printStackTrace();134 }135 }136 137 /***//**138 * 彩色转为黑白139 *@paramsource140 *@paramresult141 */142 publicstaticvoidgray(String source, String result)143 {144 try145 {146 BufferedImage src=ImageIO.read(newFile(source));147 ColorSpace cs=ColorSpace.getInstance(ColorSpace.CS_GRAY);148 ColorConvertOp op=newColorConvertOp(cs,null);149 src=op.filter(src,null);150 ImageIO.write(src,"JPEG",newFile(result));151 }152 catch(IOException e)153 {154 e.printStackTrace();155 }156 }157 158 /***//**159 *@paramargs160 */161 publicstaticvoidmain(String[] args)162 {163 scale("c:\\test\\456.jpg","C:\\test\\image1.jpg",2,false);164 cut("c:\\test\\456.jpg","C:\\test\\image2.jpg",64,64);165 gray("c:\\test\\456.jpg","C:\\test\\image4.jpg");166 }167 168 }169

java图片变成黑白代码_转:Java对图片的处理---缩放图像、图像切割、图像类型转换、彩色转为黑白...相关推荐

  1. java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...

    java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...

  2. java 怎么调用js代码_在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: " ...

  3. java中的龟兔赛跑代码_有关JAVA编写龟兔赛跑的游戏的问题。求助……

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我这个程序龟兔是在直行跑道上,老师要求龟兔在环形跑道上赛跑,哪位高手可以帮忙改一改啊,只要改成在环形跑道上赛跑就可以.THANKS. import jav ...

  4. java的app构建代码_适用于Java的Google App Engine,第2部分,构建杀手级应用

    java的app构建代码 存档日期:2019年5月14日 | 首次发布:2009年8月11日 像Google App Engine for Java™这样的云平台的全部要点是能够想象,构建和部署可扩展 ...

  5. java计分系统编程代码_使用Java代码对实时系统进行编程

    由于许多重要原因,Java语言在实时系统中的使用并不广泛. 这些包括Java语言设计固有的不确定性性能影响,例如动态类加载,以及Java Runtime Environment(JRE)本身,例如垃圾 ...

  6. java中ssm付款代码_基于Java+SSM的网上订餐系统、基于JavaWeb的网上订餐系统

    需求分析 基于Java+SSM框架实现一个校园点餐系统,包括用户端和管理员端; 前台主要功能有用户注册, 用户登录, 我的购物车.我的订单.商品评论.校园资讯等; 管理员端主要功能有:用户管理.商品管 ...

  7. java图书信息添加代码_图书 - java代码库 - 云代码

    [java]代码库package com.mahe; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt. ...

  8. java cxf服务端代码_【JAVA】 cxf 生成 webservice 服务端代码

    CXF Apache CXF = Celtix + XFire.CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding . ...

  9. java答题小程序代码_学习java第四天写的小程序

    代码如下: /** *作用:制作一个石头剪刀布的游戏 *作者:李林雄 */ import java.util.Scanner; public class Test6Game{ public stati ...

  10. java文件批量改名代码_[原创]JAVA版批量更名程序(附源码)(要求加分)

    这是上学时JAVA课程的课程实践,因为学习好,老师让写一个比较有难度的程序出来,不要随便写个简单的来应付. 当时也不知道什么类型的程序在JAVA里比较有难度,正好在JAVA中文论坛里看到有人问用JAV ...

最新文章

  1. 大数据的三个特征(重要挑战)
  2. docker启动elasticsearch失败--jvm内存不足解决方案
  3. 实现mysql按月统计的教程
  4. 基于Spring Cloud实现微服务前后端系统
  5. python list 查找find_List 泛型 集合中 Find 的用法
  6. input的onchange事件 及只能输入数字实现
  7. Let's go home
  8. Python爬虫自动下载音乐(网易)
  9. 堆排序时间复杂度_leetcode刷题(二):排序算法(归并排序,堆排序,桶排序)...
  10. 编程之美 4.6桶中取黑白球
  11. 枚举基类Enum详解
  12. 二维凸包 Graham扫描算法
  13. python 爬取taptap热门榜
  14. Web前端开发-为网页元素添加阴影效果
  15. 【Appium】手机按键(比如返回键、Home键等)的数字代号总结
  16. OMG,12 个精致的 Java 字符串操作小技巧,学它
  17. 台式计算机usb口接触不良,台式机usb接口不好怎么办
  18. EDG夺冠,Python分析一波B站评论,总结:EDG,nb
  19. Google Earth Engine(GEE)——在处理sentinel-1 合成孔径雷达 SAR 数据
  20. Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources...

热门文章

  1. Android自定义一个属于自己的刻度尺
  2. oracle11g64位怎么用sql,PLSQL连接Oracle11g64位
  3. c盘python27文件夹可以删除嘛_C盘的哪些文件夹可以删
  4. CISCO路由器交换机简介及Packet+Tracer使用说明
  5. 浅谈自然语言处理(NLP)学习路线(一)--- 概述
  6. [论文笔记]Rob-GAN: Generator, Discriminator, and Adversarial Attacker
  7. android微信图片编辑带滤镜,微信更新了一个小功能,一些图片编辑软件可能要被打入冷宫了...
  8. 项目Beta冲刺(2/7)(追光的人)(2019.5.24)
  9. 数据库实战踩坑指南1:取前N项,需要WITH TIES
  10. 江西省九江市瑞昌市高考成绩查询2021,2021江西省地区高考成绩排名查询,江西省高考各高中成绩喜报榜单...