BufferedImage 基本用法

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);

5: 图片的保存:

    File file =new File(”001.jpg“);

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

   ImageIO.write(image, "png",file);

  • 7
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JNI (Java Native Interface) 是一种机制,它允许 Java 代码与其他语言写的代码进行交互。当你需要在 Java 中使用一些底层资源(如图像)时,可能会用到 JNI。 创建 `BufferedImage` 对象在 JNI 中是一个常见的任务。`BufferedImage` 是 Java 的图像处理类,它提供了一种方便的方式来处理图像数据。 下面是一个简单的步骤说明如何使用 JNI 在 Java 中创建 `BufferedImage`: 1. **编写 C/C++ 代码**:首先,你需要编写一段 C/C++ 代码,该代码将使用 JNI 创建 `BufferedImage`。 2. **包含必要的头文件**:在你的 C/C++ 代码中,你需要包含必要的头文件,如 `jni.h`。这个头文件包含了 JNI 的基本声明和类型。 3. **创建 Java 对象**:在你的 C/C++ 代码中,你需要通过 JNI 来调用 Java 代码来创建一个 `BufferedImage` 对象。这个对象可以通过 JNI 提供的 `NewXXX` 方法创建,其中 XXX 是你的 `BufferedImage` 类型的名称(例如,`NewBufferedImage`)。 4. **设置图像属性**:一旦你创建了 `BufferedImage` 对象,你可以使用 JNI 来设置图像的属性,如颜色模型、尺寸等。 5. **返回图像**:最后,你需要通过 JNI 将 `BufferedImage` 对象返回给 Java 代码。这通常通过调用 `env->NewXXX(image)` 来完成,其中 env 是 JNI 环境对象,image 是你的 `BufferedImage` 对象。 下面是一个简单的示例代码片段,展示了如何在 C/C++ 中使用 JNI 创建 `BufferedImage`: ```c++ #include <jni.h> #include "your_java_class.h" // Java 类对应的 C/C++ 类文件 JNIEXPORT jobject JNICALL Java_your_java_class_createBufferedImage(JNIEnv *env, jobject obj) { // 创建 BufferedImage 对象 jobject image = env->NewBufferedImage(width, height, type); return image; } ``` 注意:这个示例代码仅供参考,你需要根据你的具体需求进行修改。在实际使用中,你可能需要处理更多的错误情况,并确保正确地释放资源。此外,你还需要确保你的 C/C++ 代码能够正确地与 Java 环境交互。这通常涉及到设置正确的库路径和环境变量等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值