精华内容
下载资源
问答
  • 2021-03-17 12:45:28

    package com.aa.promotion.dao.generalize; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.channels.FileChannel; import javax.imageio.ImageIO; public class UmpGeneralizeDAO { public static void main(String[] args) { File file = new File("E:\\test.jpg"); FileChannel fc = null; if(file.exists() && file.isFile()){ try { FileInputStream fs = new FileInputStream(file); fc = fs.getChannel(); System.out.println(fc.size() + "-----fc.size()"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } System.out.println(file.length() + "-----file.length  B"); System.out.println(file.length() * 1024 + "-----file.length  kb"); BufferedImage bi = null; try { bi = ImageIO.read(file); } catch (IOException e) { e.printStackTrace(); } int width = bi.getWidth(); int height = bi.getHeight(); System.out.println("宽:像素-----" + width + "高:像素"  + height); } } 获取到的图片大小默认为B

    更多相关内容
  • 主要介绍了java编程简单获取图片像素的方法,涉及Java针对图片的读取与属性获取技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • Java获取图片像素点数组数据

    千次阅读 2021-08-31 17:49:10
    //方式一:通过getRGB()方式获得像素矩阵 public static void getPicArrayData(String path){ try{ BufferedImage bimg = ImageIO.read(new File(path)); int [][] data = new int[bimg.getWidth()][bimg....

    方式一:

    //方式一:通过getRGB()方式获得像素矩阵
    public static void getPicArrayData(String path){
        try{
            BufferedImage bimg = ImageIO.read(new File(path));
            int [][] data = new int[bimg.getWidth()][bimg.getHeight()];
            for(int i=0;i<bimg.getWidth();i++){
                for(int j=0;j<bimg.getHeight();j++){
                    data[i][j]=bimg.getRGB(i,j);
                    //输出一列数据比对
                    if(i==0){
                        String format = String.format("%x", data[i][j]);
                        System.out.println(format);
                    }
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
    

    方式二:

    private static int[][] convertTo2DWithoutUsingGetRGB(String path) throws IOException {
       BufferedImage image = ImageIO.read(new File(path));
    
       final byte[] pixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
       final int width = image.getWidth();
       final int height = image.getHeight();
       final boolean hasAlphaChannel = image.getAlphaRaster() != null;
    
       int[][] result = new int[height][width];
       if (hasAlphaChannel) {
           final int pixelLength = 4;
           for (int pixel = 0, row = 0, col = 0; pixel < pixels.length; pixel += pixelLength) {
               int argb = 0;
               argb += (((int) pixels[pixel] & 0xff) << 24); // alpha
               argb += ((int) pixels[pixel + 1] & 0xff); // blue
               argb += (((int) pixels[pixel + 2] & 0xff) << 8); // green
               argb += (((int) pixels[pixel + 3] & 0xff) << 16); // red
               result[row][col] = argb;
               col++;
               if (col == width) {
                   col = 0;
                   row++;
               }
           }
       } else {
           final int pixelLength = 3;
           for (int pixel = 0, row = 0, col = 0; pixel < pixels.length; pixel += pixelLength) {
               int argb = 0;
               argb += -16777216; // 255 alpha
               argb += ((int) pixels[pixel] & 0xff); // blue
               argb += (((int) pixels[pixel + 1] & 0xff) << 8); // green
               argb += (((int) pixels[pixel + 2] & 0xff) << 16); // red
               result[row][col] = argb;
               col++;
               if (col == width) {
                   col = 0;
                   row++;
               }
           }
       }
    
       return result;
    }
    

    测试:

    public static void main(String[] args) throws IOException {
    	//方式一
        //getPicArrayData("C:\\Users\\yanni\\Desktop\\企鹅.jpg");
    
    	//方式二
        int[][] ints = convertTo2DWithoutUsingGetRGB("C:\\\\Users\\\\yanni\\\\Desktop\\\\企鹅.jpg");
        for (int i=0;i<ints.length;i++){
            for (int j=0;j<ints[i].length;j++){
            	//只打印一列数据
                if (i==0){
                    String format = String.format("%x", ints[i][j]);
                    System.out.println(format);
                }
            }
        }
    }
    

    听说第二种方式的性能高出第一种90%,性能更优。

    参考:https://www.itranslater.com/qa/details/2325735804238300160

    展开全文
  • java获取图片每个像素点的RGB

    千次阅读 2021-03-03 10:54:20
    /*** 获取图片RGB数组* @param filePath* @return*/public int[][] getImageGRB(String filePath) {File file = new File(filePath);int[][] result = null;if (!file.exists()) {return result;}try {BufferedImage...

    /**

    * 获取图片RGB数组

    * @param filePath

    * @return

    */

    public int[][] getImageGRB(String filePath) {

    File file = new File(filePath);

    int[][] result = null;

    if (!file.exists()) {

    return result;

    }

    try {

    BufferedImage bufImg = ImageIO.read(file);

    int height = bufImg.getHeight();

    int width = bufImg.getWidth();

    result = new int[width][height];

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

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

    result[i][j] = bufImg.getRGB(i, j) & 0xFFFFFF;

    System.out.println(bufImg.getRGB(i, j) & 0xFFFFFF);

    }

    }

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    return result;

    }

    备注:应为使用getRGB(i,j)获取的该点的颜色值是ARGB,而在实际应用中使用的是RGB,所以需要将ARGB转化成RGB,即bufImg.getRGB(i, j) & 0xFFFFFF。

    本文出自 “TinyKing” 博客,请务必保留此出处http://tinyking.blog.51cto.com/3338571/749045

    展开全文
  • java获取图片像素点的RGB值

    万次阅读 多人点赞 2015-06-10 16:54:50
    转的其他人的。 自己试了可以。 忘记具体哪个地方了。...import java.awt.AWTException; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import

    转的其他人的。

    自己试了可以。

    忘记具体哪个地方了。

    package com.yang.rm.system;
    
    import java.awt.AWTException;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.File;
    
    import javax.imageio.ImageIO;
    
    public class ReadColorTest {
    	/**
    	 * 读取一张图片的RGB值
    	 * 
    	 * @throws Exception
    	 */
    	public void getImagePixel(String image) throws Exception {
    		int[] rgb = new int[3];
    		File file = new File(image);
    		BufferedImage bi = null;
    		try {
    			bi = ImageIO.read(file);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		int width = bi.getWidth();
    		int height = bi.getHeight();
    		int minx = bi.getMinX();
    		int miny = bi.getMinY();
    		System.out.println("width=" + width + ",height=" + height + ".");
    		System.out.println("minx=" + minx + ",miniy=" + miny + ".");
    		for (int i = minx; i < width; i++) {
    			for (int j = miny; j < height; j++) {
    				int pixel = bi.getRGB(i, j); // 下面三行代码将一个数字转换为RGB数字
    				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] + ")");
    			}
    		}
    	}
    
    	/**
    	 * 返回屏幕色彩值
    	 * 
    	 * @param x
    	 * @param y
    	 * @return
    	 * @throws AWTException
    	 */
    	public int getScreenPixel(int x, int y) throws AWTException { // 函数返回值为颜色的RGB值。
    		Robot rb = null; // java.awt.image包中的类,可以用来抓取屏幕,即截屏。
    		rb = new Robot();
    		Toolkit tk = Toolkit.getDefaultToolkit(); // 获取缺省工具包
    		Dimension di = tk.getScreenSize(); // 屏幕尺寸规格
    		System.out.println(di.width);
    		System.out.println(di.height);
    		Rectangle rec = new Rectangle(0, 0, di.width, di.height);
    		BufferedImage bi = rb.createScreenCapture(rec);
    		int pixelColor = bi.getRGB(x, y);
    
    		return 16777216 + pixelColor; // pixelColor的值为负,经过实践得出:加上颜色最大值就是实际颜色值。
    	}
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) throws Exception {
    		int x = 0;
    		ReadColorTest rc = new ReadColorTest();
    		x = rc.getScreenPixel(100, 345);
    		System.out.println(x + " - ");
    		rc.getImagePixel("D:\\car.jpg");
    	}
    
    }
    

    i=76,j=554:(189,157,118)
    i=76,j=555:(171,139,100)
    i=76,j=556:(176,144,105)
    i=76,j=557:(183,153,117)
    i=76,j=558:(172,145,115)
    i=76,j=559:(114,87,57)
    i=76,j=560:(156,127,93)
    i=76,j=561:(173,143,105)
    i=76,j=562:(164,132,94)
    i=76,j=563:(170,138,99)
    i=76,j=564:(170,136,99)
    i=76,j=565:(167,135,97)
    i=76,j=566:(174,144,108)
    i=76,j=567:(158,128,90)
    i=76,j=568:(183,151,112)
    i=76,j=569:(185,153,115)
    i=76,j=570:(206,177,145)
    i=76,j=571:(134,107,78)
    i=76,j=572:(113,88,58)
    i=76,j=573:(190,165,135)
    i=76,j=574:(154,130,104)
    i=76,j=575:(94,68,41)
    i=76,j=576:(182,151,120)
    i=76,j=577:(190,157,122)
    i=76,j=578:(170,137,102)
    i=76,j=579:(167,136,105)
    i=76,j=580:(149,123,98)
    i=76,j=581:(91,69,46)
    i=76,j=582:(134,109,89)
    i=76,j=583:(139,114,94)
    i=76,j=584:(127,102,80)
    i=76,j=585:(126,101,81)
    i=76,j=586:(111,85,68)
    i=76,j=587:(111,85,70)
    i=76,j=588:(113,88,68)
    i=76,j=589:(119,94,72)
    i=76,j=590:(142,118,92)
    i=76,j=591:(140,116,88)
    i=76,j=592:(151,127,101)
    i=76,j=593:(86,64,41)
    i=76,j=594:(103,82,65)
    i=76,j=595:(114,93,76)
    i=76,j=596:(110,85,63)
    i=76,j=597:(166,139,110)
    i=76,j=598:(172,142,108)
    i=76,j=599:(139,107,69)
    i=76,j=600:(173,141,100)
    i=76,j=601:(205,172,131)
    i=76,j=602:(142,108,71)
    i=76,j=603:(201,168,133)
    i=76,j=604:(165,134,103)
    i=76,j=605:(136,109,79)
    i=76,j=606:(147,122,92)
    i=76,j=607:(144,118,91)
    i=76,j=608:(142,116,93)
    i=76,j=609:(140,114,91)
    i=76,j=610:(121,94,67)
    i=76,j=611:(168,139,109)
    i=76,j=612:(159,126,91)
    i=76,j=613:(167,133,95)
    i=76,j=614:(191,154,110)
    i=76,j=615:(197,159,120)
    i=76,j=616:(198,167,136)
    i=76,j=617:(102,76,51)
    i=76,j=618:(110,89,72)
    i=76,j=619:(116,97,83)
    i=76,j=620:(127,109,95)
    i=76,j=621:(92,74,62)
    i=76,j=622:(102,85,75)
    i=76,j=623:(94,80,71)
    i=76,j=624:(96,81,74)
    i=76,j=625:(95,80,73)
    i=76,j=626:(107,90,82)
    i=76,j=627:(99,82,74)
    i=76,j=628:(100,83,73)
    i=76,j=629:(110,93,83)
    i=76,j=630:(105,88,78)
    i=76,j=631:(104,90,81)


    展开全文
  • 转:java提取图片中的像素

    千次阅读 2021-02-12 17:59:16
    http://www.infosys.tuwien.ac.at/teaching/courses/WebEngineering/References/java/docs/api/java/awt/image/PixelGrabber.htmlPixelGrabber 类实现可以附加在 Image 或 ImageProducer 对象上获得图像像素子集的 ...
  • 1、参数类型 MultipartFile file;...3、获取图片像素(单位:px) BufferedImage image = ImageIO.read(file.getInputStream()); int width = image.getWidth(); //宽 int height = image.getHeight(); //高 ...
  • 文章转载自 https://blog.csdn.net/ubuntu_yanglei/article/details/46443929 根据自己的需要做了少许改动import ...import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java....
  • // +多少自己取值 值越小表示取的每一个像素越小 for (int j = miny; j ; j=j+4) { for (int i = minx; i ; i=i+4) { // 转16进制 int pixel = bi.getRGB(i, j); rgb[0] = (pixel & 0xff0000) >> 16; rgb[1] = ...
  • 首先涉及到的是如何将一副图片读取到一个像素矩阵中(Java中就是一维或二维数组中)。在实践过程中,通过测试代码,我发现基于BufferedImage可以有两种获取像素矩阵的方式,但需要注意像素点的保存顺序问题。具体表现...
  • 从前面的文字中就可以看出,对数字图像的处理都是在像素级上操作的,准确地讲是操作像素点的RGB值,在图像取反和灰度图像转换两篇中已经涉及到了对RGB操作的相关代码,相信大家已经也看到了,就是这一段:for (int j...
  • }我有一个方法可以将像素值保存在一个文件中: public void writeImageValueToFile(BufferedImage in, String fileName) { int width = in.getWidth(); int height = in.getHeight(); try { FileWriter fstream = ...
  • Java提取EXCEL图片重命名并改变像素大小项目源代码, Java提取EXCEL图片重命名并改变像素大小, Java提取EXCEL图片重命名并改变像素大小
  • public int getPixel(int x,int y) throws AWTException{ //函数返回值为颜色的RGB值。Robot rb = null; //java.awt.image包中的类,可以用来抓取屏幕,即截屏。rb = new Robot();T...
  • 利用canvas的2d对象,我们可以获取图片每个像素点的数据 CanvasPixelArray 舜子这里也写了一个简单的 getImageData 的演示 图片取色演示。这个演示目前只能在ff3下运行。 能够获取像素点后,是不是以后的OCR文字...
  • * 获取图片大小 及 尺寸 * @return * @throws FileNotFoundException * @throws IOException */ public Float getImgWidth() throws FileNotFoundException, IOException { //图片大小(...
  • 图像RGB值的获取

    2018-03-13 17:34:08
    1.关于图像RGB值的获取,要用到的图片应为bmp格式(24位),优点是无损压缩,图质最好; 2.按行按列分块均等取像素的RGB值需要对图像进行压缩,这里用到的压缩函数是opencv自带的函数,可以对要压缩的图像指定宽高的...
  • (java)图片像素的操作

    2021-02-12 14:52:26
    2.获取图片指定位置的RGB值3.图片的灰化处理4.修改图片的透明通道alpha————————————————————————————————————————————————————————...
  • java获取图片的大小和尺寸,有两种获取的源,一种是读取本地的图片获取大小和尺寸,一种是通过服务器上图片的地址获取图片的尺寸!下面整理出这两种方式的简易代码,希望帮助的大家和自己!我使用的Juint 进行的测试...
  • Java读取图片分辨率依赖,如果你想实现在后台自动识别图片的分辨率,那么就果断下载吧!
  • 获取文件大小、宽度、高度
  • Java获取图片的RGB值(数字图像处理) 一:简介 RGB即是代表红、绿、蓝三个通道的颜色。我们知道大多数的颜色都是由这3种颜色所组成,下面我们将演示使用Java获取到图片中的RGB值,并且输出; 二:代码 import javax...
  • java获取图片的大小和尺寸,有两种获取的源,一种是读取本地的图片获取大小和尺寸,一种是通过服务器上图片的地址获取图片的尺寸!下面整理出这两种方式的简易代码,希望帮助的大家和自己! 我使用的Juint 进行的测试...
  • Java获取图片RGB值

    千次阅读 2020-08-09 00:00:00
    欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。欢迎加入团队圈子!与作者面对面!直接点击!前言图片对比获...
  • java获取图片分辩率大小

    千次阅读 2015-03-19 13:31:34
    一、String oriname = file.getOriginalFilename(); String atp = oriname.substring(oriname.lastIndexOf(".")+1, oriname.length()); Iterator readers = ImageIO.getImageReadersByFormatName(atp);...
  • java获取图片的长宽尺寸(毫米)

    千次阅读 2021-02-06 18:00:00
    java获取图片的长宽尺寸(毫米) 现在有个需求是附上 附件图片,同时要标注图片的一些属性,比较麻烦的要标识图片的长宽尺寸(毫米),网上找了半天都是获取图片的长宽像素,但是想了想 图片的长宽尺寸不应该是和...
  • import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import javax.swing.BorderFacto...
  • 项目需求, 需要从图片获取到拍摄地点的经纬度,下边是java实现: 1. 需要jar包:https://mvnrepository.com/artifact/com.drewnoakes/metadata-extractor/2.6.2 2. maven <!-- ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,353
精华内容 10,941
关键字:

java获取图片像素

java 订阅