/**

* ━━━━━━神兽出没━━━━━━

*   ┏┓   ┏┓

*  ┏┛┻━━━┛┻┓

*  ┃       ┃

*  ┃   ━   ┃

*  ┃ ┳┛ ┗┳ ┃

*  ┃       ┃

*  ┃   ┻   ┃

*  ┃       ┃

*  ┗━┓   ┏━┛Code is far away from bug with the animal protecting

*    ┃   ┃ 神兽保佑,代码无bug

*    ┃   ┃

*    ┃   ┗━━━┓

*    ┃       ┣┓

*    ┃       ┏┛

*    ┗┓┓┏━┳┓┏┛

*     ┃┫┫ ┃┫┫

*     ┗┻┛ ┗┻┛

*

* ━━━━━━感觉萌萌哒━━━━━━

*/

package gt.controller.Images;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

/**

* 类名称:ImageDemo2.java

* 类描述:

* 作 者:why

* 时 间:2017年3月17日

*/

public class ImageDemo2 {

/**

* 加权法灰度化(效果较好)

* 图片灰化(参考:http://www.codeceo.com/article/java-image-gray.html)

*

* @param bufferedImage 待处理图片

* @return

* @throws Exception

*/

public static BufferedImage grayImage(BufferedImage bufferedImage) throws Exception {

int width = bufferedImage.getWidth();

int height = bufferedImage.getHeight();

BufferedImage grayBufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

for (int x = 0; x < width; x++) {

for (int y = 0; y < height; y++) {

// 计算灰度值

final int color = bufferedImage.getRGB(x, y);

final int r = (color >> 16) & 0xff;

final int g = (color >> 8) & 0xff;

final int b = color & 0xff;

int gray = (int) (0.3 * r + 0.59 * g + 0.11 * b);

//int gray = (int) (0.21 * r + 0.71 * g + 0.07 * b);

int newPixel = colorToRGB(255, gray, gray, gray);

grayBufferedImage.setRGB(x, y, newPixel);

}

}

return grayBufferedImage;

}

/**

* 颜色分量转换为RGB值

*

* @param alpha

* @param red

* @param green

* @param blue

* @return

*/

private static int colorToRGB(int alpha, int red, int green, int blue) {

int newPixel = 0;

newPixel += alpha;

newPixel = newPixel << 8;

newPixel += red;

newPixel = newPixel << 8;

newPixel += green;

newPixel = newPixel << 8;

newPixel += blue;

return newPixel;

}

public static void main(String[] args) throws Exception {

File file = new File("D:\\ocrpic\\sjh.png");

BufferedImage image = ImageIO.read(file);

File newFile = new File("D:\\ocrpic\\sjh1.png");

ImageIO.write(grayImage(image), "png", newFile);

}

}

处理前:

处理后:

java 图片转灰度_java 图片灰度化相关推荐

  1. java实现上传图片代码_Java图片上传实现代码

    本文实例为大家分享了java图片上传代码,供大家参考,具体内容如下 import java.io.*; import java.net.*; /* *发送端 */ class picsend { pu ...

  2. 用java怎么开发图片标注工具_java 图片处理工具 测试

    使用google 开源工具 对图片进行 压缩 处理 , 这里只测试一下压缩功能 : @RequestMapping(value = "/image/dealImage", meth ...

  3. java ajax上传图片插件_java图片上传并预览,前台用jQuery插件AjaxFileUpload,后台用FileUtils.copyFile....

    个人笔记,以备后用. 表体代码: 查看图片 js代码(记得要引入jquery库和ajaxfileupload库): //上传文件id号 function fileUpload(uploadFileId ...

  4. java图片压缩质量_java图片高质量压缩

    /** * 根据宽高编辑图片 * * @param outPath *            输出文件路径 * @param width *            输出文件宽 * @param hei ...

  5. java 图片互转_JAVA 图片格式转换 jpg、jpeg、png格式互转

    最近项目遇到一些图片格式的问题,于是就写下这边博客,帮助记忆,代码如下: public static void main(String[] args) { //原文件路径 String src = & ...

  6. java图片镜像代码_java图片基本操作-缩放,旋转,镜像,拼接

    /*** 缩放*/ public static void zoomByScale(BufferedImage bufImage, double scale) throwsIOException {// ...

  7. java如何处理灰度图片_Java图片的灰度处理方法

    通过看网上各种大牛的总结,和自己亲身测试总结一下Java图片的灰度处理方法 (1)我们熟知的图片中的像素点有RGB值. (2)图片灰度化的方式大概分为四种,第一种是最大值法(取颜色RGB中的最大值作为 ...

  8. java 实现ps功能_java 简单图片,可以实现ps的几个小滤镜

    java 简单图片,可以实现ps的几个小滤镜 以下教你实现图片马赛克,黑白画,珠纹化,油画效果等处理技术原理及实现.看完自己也可以简单的玩一玩. 1. 需要用到的包 java.awt // 用于创建用 ...

  9. Java 简单图片 马赛克,黑白画,珠纹化,油画效果等处理技术 原理及实现 (简单UI)

    Java 图片马赛克,黑白画,珠纹化,油画效果等处理技术 原理及实现 1. 需要用到的包 java.awt // 用于创建用户界面和绘制图形图像的所有类 javax.swing // 提供一组&quo ...

最新文章

  1. 用邮箱实现多事件的单向同步
  2. SpringMVC学习10之AJAX初体验和了解
  3. 代码精进之路--思维导图
  4. 手rm-linux联网后自动dhcp,Linux操作系统下DHCP简单设置
  5. 程序员的职业规划_大学毕业进入职场,程序员如何进行合理的互联网职业规划?...
  6. VS2017安装方法
  7. cad卸载_CAD卸载不干净,如何清理CAD注册表
  8. Google Earth Engine(GEE)——点、线、面和省级行政区的加载和展示,以及矢量的过滤筛选
  9. 简单的Java小游戏 -- 数字连连消
  10. 你的贷款今天逾期了吗?
  11. JetBrain代码补全
  12. 解读大学里的软件工程专业以及其他专业,给高考完的学弟妹一点参考
  13. php imap 安装_PHP安装IMAP扩展
  14. 卷积神经网络的反向传播,卷积反向传播过程
  15. 【毕业设计】基于单片机的家庭智能监控系统 - 物联网 stm32 嵌入式
  16. Python爬取特朗普就职演讲稿,使用ngram模型进行数据清洗
  17. 毕业设计:微信小程序健康管理系统的开发与实现
  18. 2023 云海Chatgtp个人商业源码
  19. 浙江工业大学计算机学院推免生,浙江工业大学计算机科学与技术学院(专业学位)软件工程保研夏令营...
  20. 2023年互联网技术发展趋势浅析

热门文章

  1. 4.0 内核文件系统-kernel部分
  2. peper home page--amulet
  3. KeyError错误
  4. request.POST[]与request.POST.get()的区别
  5. 关于addEventListener触发多次
  6. 【电子实验1】电容充电、放电显示器
  7. 超码、主码、候选码的概念与区分
  8. Java实现Redis过期数据清除
  9. 请勿滥用 2PC, 忘记提交prepared transaction对PostgreSQL造成的危害.
  10. 回忆,更多的只是回忆!