Java BufferedImage的基本用法

原创
2018/10/29 17:05
阅读数 7.2W
1:读取本地图片:

       File file = new File(”001.jpg“);//本地图片

       BufferedImage image=(BufferedImage)ImageIO.read(file);

2:读取一张网上图片:

      URL url= new URL(”http://*******“);//url 为图片的URL 地址

     BufferedImage image=(BufferedImage)ImageIO.read(url);

3:获取图片的每个像素点的像素值(获取个点像素值是后期图片操作的基础):

     //获取图像的宽度和高度
     int width = bi.getWidth();
     int height = bi.getHeight();
     int [] pot = new int[width*height];
     
     int k=0;
     for(int i=0;i<height;i++){
       for(int j=0;j<width;j++){//行扫描
        pot[k] = bi.getRGB(j, i);
          k++;
      System.out.println(pot[i]);
    }

4:计算图片保存后的大小:

    要计算图片保存时的大小,一种简单的方法就是计算图片的输出刘的大小;将输出流转为 一个 byte 数组;然后计算数组的长度:

   image=(BufferedImage)ImageIO.read(url);
  ByteArrayOutputStream out =new ByteArrayOutputStream();
   ImageIO.write(image,"png",out);//png 为要保存的图片格式
  byte[] barray = out.toByteArray();

  out.close();

System.out.println(barray.length)

 

//获取文件的类型
                    String fileType = faceImg.substring(faceImg.lastIndexOf(".") + 1, faceImg.length());
                    //获取文件名称
                    String fileName = faceImg.substring(faceImg.lastIndexOf("/") + 1, faceImg.length());

                    //把地址转换成URL对象
                    URL url = new URL(faceImg);
                    //读取图片到缓冲数组中
                    BufferedImage image = ImageIO.read(url);
                    ByteArrayOutputStream out = new ByteArrayOutputStream();
                    //把文件写到输出流中
                    ImageIO.write(image, fileType, out);
                    //创建一个输入流
                    InputStream inputStream = new ByteArrayInputStream(out.toByteArray());
                    //获取图片的具体类型
                    String contentType = AliyunOSSUtil.contentType(fileType);

                    //上传阿里云
                    AliyunOssResult result = AliyunOSSUtil.upload(inputStream, contentType, fileName);

 

展开阅读全文
打赏
3
1 收藏
分享
加载中
第3点那里 博主用一个int[]保存每个像素值,如果一个图像的位深度大于32位,也就是每个像素值大于32位,那会不会出问题呢?
2019/11/15 14:43
回复
举报
faderer,rafa,球友,点个赞
2019/08/13 11:07
回复
举报
更多评论
打赏
2 评论
1 收藏
3
分享
返回顶部
顶部