精华内容
下载资源
问答
  • 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)


    展开全文
  • 文章转载自 https://blog.csdn.net/ubuntu_yanglei/article/details/46443929 根据自己的需要做了少许改动import ...import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java....

    文章转载自 https://blog.csdn.net/ubuntu_yanglei/article/details/46443929 

    根据自己的需要做了少许改动

    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    
    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();
    
    
            // 红色
            List<Integer> red = new ArrayList();
            // 蓝色
            List<Integer> blue = new ArrayList();
    
    
            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++) {
    		 */
    
    
            for (int i = width / 5; i < width * 4 / 5; i++) {
                for (int j = height / 3; j < height * 2 / 3; 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] + ")");
                    //关于rgb值的筛选范围,下边会有参考方法
                    if (rgb[0] > 250 && rgb[0] < 255 && rgb[1] < 100 && rgb[2] < 100) {
                        red.add(rgb[0]);
                    }
                    if (rgb[2] > 250 && rgb[2] < 255 && rgb[0] < 100 && rgb[1] < 100) {
                        blue.add(rgb[2]);
                    }
                }
            }
            //这里如果需要获取颜色所占比例,可以自行操作,如下:
            /*DecimalFormat df=new DecimalFormat("0.00");
            float pxRed=(float)red.size()/total;
            System.out.println("红色占比"+df.format(pxRed));*/
            
            System.out.println("红色像素点" + red.size());
            System.out.println("蓝色像素点" + blue.size());
        }
    
    
        /**
         * 返回屏幕色彩值
         *
         * @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:\\date\\4.25\\false\\111.jpg");
        }
    }

    输出结果:



    打开循环里的注释,结果会输出 i=76,j=554:(189,157,118)

    i,j代表像素点的坐标,括号内的值代表rgb值,(255,255,255)为白色 (0,0,0)为黑色 

    如何筛选想要的颜色这里可以介绍给大家一个简单的方法

    用windows自带的画图工具打开图片


    用颜色选取器,选择你所需要的颜色,然后点击编辑颜色


    这里可以看见rgb值,也可以手动输入rgb,看看是什么颜色



    另外鼠标放在图片上,在左下角可以看见该像素点的x,y坐标,便于搜索你想要的范围

    展开全文
  • 项目需求, 需要从图片获取到拍摄地点的经纬度,下边是java实现: 1. 需要jar包:https://mvnrepository.com/artifact/com.drewnoakes/metadata-extractor/2.6.2 2. maven <!-- ...

    项目需求, 需要从图片中获取到拍摄地点的经纬度,下边是java实现:
    1. 需要jar包:https://mvnrepository.com/artifact/com.drewnoakes/metadata-extractor/2.6.2
    2. maven

    <!-- https://mvnrepository.com/artifact/com.drewnoakes/metadata-extractor -->
    <dependency>
        <groupId>com.drewnoakes</groupId>
        <artifactId>metadata-extractor</artifactId>
        <version>2.6.2</version>
    </dependency>
    

    代码实现:

    import com.drew.imaging.jpeg.JpegMetadataReader;
    import com.drew.metadata.Directory;
    import com.drew.metadata.Metadata;
    import com.drew.metadata.Tag;
    
    import java.io.File;
    
    /**
     * 测试用于读取图片的EXIF信息
     *
     * @author Winter Lau
     */
    public class ExifTester {
        public static void main(String[] args) throws Exception {
            File jpegFile = new File("/Users/a123/Desktop/1.pic_hd.jpg");
            Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
            for(Directory directory : metadata.getDirectories()){
                for(Tag tag : directory.getTags()){
                    System.out.print("name : " + tag.getTagName() + "  -->");
                    System.out.println("desc : " + tag.getDescription());
                }
            }
        }
    }

    输出结果:name是属性名, desc是属性值

    name : Compression Type  -->desc : Baseline
    name : Data Precision  -->desc : 8 bits
    name : Image Height  -->desc : 3024 pixels
    name : Image Width  -->desc : 4032 pixels
    name : Number of Components  -->desc : 3
    name : Component 1  -->desc : Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
    name : Component 2  -->desc : Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
    name : Component 3  -->desc : Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
    name : Exposure Time  -->desc : 1/33 sec
    name : F-Number  -->desc : F2.2
    name : Exposure Program  -->desc : Program normal
    name : ISO Speed Ratings  -->desc : 50
    name : Exif Version  -->desc : 2.21
    name : Date/Time Original  -->desc : 2017:01:17 10:55:36
    name : Date/Time Digitized  -->desc : 2017:01:17 10:55:36
    name : Components Configuration  -->desc : YCbCr
    name : Shutter Speed Value  -->desc : 1/33 sec
    name : Aperture Value  -->desc : F2.2
    name : Brightness Value  -->desc : 5560/1719
    name : Exposure Bias Value  -->desc : 0 EV
    name : Metering Mode  -->desc : Spot
    name : Flash  -->desc : Flash did not fire, auto
    name : Focal Length  -->desc : 4.15 mm
    name : Subject Location  -->desc : 3214 1248 753 756
    name : Sub-Sec Time Original  -->desc : 155
    name : Sub-Sec Time Digitized  -->desc : 155
    name : FlashPix Version  -->desc : 1.00
    name : Color Space  -->desc : sRGB
    name : Exif Image Width  -->desc : 4032 pixels
    name : Exif Image Height  -->desc : 3024 pixels
    name : Sensing Method  -->desc : One-chip color area sensor
    name : Scene Type  -->desc : Directly photographed image
    name : Custom Rendered  -->desc : Unknown (3)
    name : Exposure Mode  -->desc : Auto exposure
    name : White Balance Mode  -->desc : Auto white balance
    name : Focal Length 35  -->desc : 29mm
    name : Scene Capture Type  -->desc : Standard
    name : Lens Specification  -->desc : 83/20 83/20 11/5 11/5
    name : Lens Make  -->desc : Apple
    name : Lens Model  -->desc : iPhone 6s back camera 4.15mm f/2.2
    name : Make  -->desc : Apple
    name : Model  -->desc : iPhone 6s
    name : Orientation  -->desc : Right side, top (Rotate 90 CW)
    name : X Resolution  -->desc : 72 dots per inch
    name : Y Resolution  -->desc : 72 dots per inch
    name : Resolution Unit  -->desc : Inch
    name : Software  -->desc : 10.2
    name : Date/Time  -->desc : 2017:01:17 10:55:36
    name : YCbCr Positioning  -->desc : Center of pixel array
    name : GPS Latitude Ref  -->desc : N
    name : GPS Latitude  -->desc : 40.0° 3.0' 1.4099999999854163"
    name : GPS Longitude Ref  -->desc : E
    name : GPS Longitude  -->desc : 116.0° 17.0' 54.97999999999365"
    name : GPS Altitude Ref  -->desc : Sea level
    name : GPS Altitude  -->desc : 54 metres
    name : GPS Time-Stamp  -->desc : 2:55:35 UTC
    name : GPS Speed Ref  -->desc : kph
    name : GPS Speed  -->desc : 0
    name : GPS Img Direction Ref  -->desc : True direction
    name : GPS Img Direction  -->desc : 17.33 degrees
    name : GPS Dest Bearing Ref  -->desc : True direction
    name : GPS Dest Bearing  -->desc : 17.33 degrees
    name : GPS Date Stamp  -->desc : 2017:01:17
    name : Unknown tag (0x001f)  -->desc : 65
    name : Thumbnail Compression  -->desc : JPEG (old-style)
    name : X Resolution  -->desc : 72 dots per inch
    name : Y Resolution  -->desc : 72 dots per inch
    name : Resolution Unit  -->desc : Inch
    name : Thumbnail Offset  -->desc : 2076 bytes
    name : Thumbnail Length  -->desc : 8604 bytes
    
    Process finished with exit code 0
    
    展开全文
  • /** * 获取图片RGB数组 * @param filePath * @return */ public int[][] getImageGRB(String filePath) { File file = new File(filePath); ...
    /**


    * 获取图片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
    展开全文
  • 点击获取图片像素

    千次阅读 2019-07-26 10:42:43
    点击获取图片像素值 想看一张图片某个像素的像素值.印象里只有matlab的image viewer有这个功能. 其他软件都没有.不如自己写一个 支持jpg,png,tif main.cpp #include<opencv2/opencv.hpp> #include<...
  • java获取图片属性

    千次阅读 2016-01-11 15:32:58
    import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;
  • java获取图片的长宽尺寸(毫米) 现在有个需求是附上 附件图片,同时要标注图片的一些属性,比较麻烦的要标识图片的长宽尺寸(毫米),网上找了半天都是获取图片的长宽像素,但是想了想 图片的长宽尺寸不应该是和...
  • java获取图片宽高

    2018-09-27 11:34:42
    最近做了一个小功能要获取图片的宽和高,之前用的是ImageIo read()去读取,但是发现他只能读取 [BMP, bmp, jpg, JPG, wbmp, jpeg, png, PNG, JPEG, WBMP, GIF, gif]这几个格式的图片,有些图片不支持 所以有找了另...
  • 我在panel里面画了一个坐标系,在里面实现图形学的种子填充递归算法,需要获取某个坐标点的当前颜色
  • Java读取图片像素和大小

    万次阅读 2015-07-09 11:37: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.IOExcep
  • JAVA 判断图片像素大小的方法

    千次阅读 2018-11-20 11:34:01
    可用于接口上传图片像素大小的判断。 public boolean judgeImgPixel(String path) throws Exception{ File file = new File( path);//读取文件路径 BufferedImage bi = null; try{ bi = ImageIO.re...
  • 一、引言Java中要取得一张图片的exif(Exchangeable Image File, 可交换图像文件)信息。比如:拍摄时间,拍摄设备型号,焦距,曝光时间等。通过开源Jar包metadata-extractor-2.8.1.jar、xmpcore-5.1.2.jar中提供的类...
  • // 获取长和宽分别的缩放比例,即面积缩放比例的2次方根 double sideRate = Math . sqrt ( sizeRate ) ; BufferedImage bufImg = ImageIO . read ( is ) ; AffineTransformOp ato = new ...
  • 1、参数类型 MultipartFile file;...3、获取图片像素(单位:px) BufferedImage image = ImageIO.read(file.getInputStream()); int width = image.getWidth(); //宽 int height = image.getHeight(); //高 ...
  • java获取图片的大小和尺寸,有两种获取的源,一种是读取本地的图片获取大小和尺寸,一种是通过服务器上图片的地址获取图片的尺寸!下面整理出这两种方式的简易代码,希望帮助的大家和自己! 我使用的Juint 进行的测试...
  • 类 package readPhoto;...import java.awt.Container; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; impo
  • 【OpenCV】 Java获取像素点的RGB值

    千次阅读 2019-03-13 20:08:12
    今天照着大佬视频写了个图片显示器,一点点的java图形界面知识就可以啦 public class ImageUI extends JComponent{ private BufferedImage image; public ImageUI() { this.image = null; } @Override ...
  • 从前面的文字中就可以看出,对数字图像的处理都是在像素级上操作的,准确地讲是操作像素点的RGB值,在图像取反和灰度图像转换两篇中已经涉及到了对RGB操作的相关代码,相信大家已经也看到了,就是这一段:for (int j...
  • Java图片文件像素

    千次阅读 2012-09-13 20:31:48
    主要用两个类实现:BufferedImage 和ImageIO package ... import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class
  • ...import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException...
  • Java png图片修改像素rgba值

    千次阅读 2018-06-18 16:07:29
    package OCRFrame; import javax.imageio.ImageIO; import javax.swing.ImageIcon;...import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; /** * Created by Jzhung on 2017/...
  • Java——批量更改图片像素(大小)

    千次阅读 2018-05-23 21:55:28
    在小程序开发中,资源加载会影响界面绘制... 因此可以考虑将列表项所需的大量图片通过更改像素的方式大大减小其大小。 例如一张2MB的图片可以缩小至2KB。 那么如何批量更改大量图片像素又不改变其比例呢? ...
  • JAVA获取图片轮廓

    千次阅读 2015-11-05 12:58:11
    原始图片类型为 jpg(type:TYPE_3BYTE_BGR)1.读取图片File filepath = new File("e://shang.jpg"); //image file path BufferedImage image = ImageIO.read(filepath); //image's read_buffer int type= image....
  • java获取网络图片、java截屏、java创建缩略图 package getPictureFromNet; /** * java截屏,获得网络图片,创建图片缩略图 */import java.net.URL;import java.awt.Container;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,565
精华内容 9,826
关键字:

java获取图片像素

java 订阅