2025年6月6日 星期五 乙巳(蛇)年 三月初十 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Java

Java 获取图片rgb值 像素矩阵方法

时间:08-17来源:作者:点击数:17

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");
  • }
  • }

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐