Java 获取图片rgb值 像素矩阵方法
Java 获取图片rgb值 像素矩阵方法
package com.WXAIPhotoAPI; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.Raster; import java.io.File; import java.io.IOException; public class DemoTest2 { public static void getData(String path) { try { int[] rgb = new int[3]; BufferedImage bimg = ImageIO.read(new File(path)); int[][] data = new int[bimg.getWidth()][bimg.getHeight()]; //方式一:通过getRGB()方式获得像素矩阵 //此方式为沿Height方向扫描 for (int i = 0; i < bimg.getWidth(); i++) { for (int j = 0; j < bimg.getHeight(); j++) { int pixel = bimg.getRGB(i, j); //输出一列数据比对 if (i == 0) { rgb[0] = (pixel & 0xff0000) >> 16; rgb[1] = (pixel & 0xff00) >> 8; rgb[2] = (pixel & 0xff); System.out.println("i=" + i + ",j=" + j + ":(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + ")"); int gray = (int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11); //计算灰度值 System.out.println(gray); } } } // Raster raster = bimg.getData(); // int[] temp = new int[raster.getWidth() * raster.getHeight() * raster.getNumBands()]; // //方式二:通过getPixels()方式获得像素矩阵 // //此方式为沿Width方向扫描 // int[] pixels = raster.getPixels(0, 0, raster.getWidth(), raster.getHeight(), temp); // for (int i = 0; i < pixels.length; ) { // //输出一列数据比对 // if ((i % raster.getWidth() * raster.getNumBands()) == 0) // System.out.printf("ff%x%x%x\t", pixels[i], pixels[i + 1], pixels[i + 2]); // i += 3; // } } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { getData("/tmp/1.jpg"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
2020-04-27 python str与bytes之间的转换
2018-04-27 python unicode to str and str to unicode