Java 我如何用选定的像素构建图像?

Java 我如何用选定的像素构建图像?,java,image,bytearray,Java,Image,Bytearray,我有一个.lfp图像,它是一个由圆圈组成的网格,每个圆圈封装了大约20x20像素,很像我们在中看到的那样。我希望能够为每个圆选择相同的像素,并从中构建新的图像。举个例子,我会取每个圆的中心像素,然后把它们画出来 我有一个基本的代码,可以将jpeg图像转换为字节数组,但是由于我不完全理解字节数组是如何存储像素的,也不知道以什么顺序存储像素,所以我不知道如何选择所需的像素。此外,一旦我选择了它们,我如何将它们连接到一个新的图像中 import java.awt.image.BufferedImage

我有一个.lfp图像,它是一个由圆圈组成的网格,每个圆圈封装了大约20x20像素,很像我们在中看到的那样。我希望能够为每个圆选择相同的像素,并从中构建新的图像。举个例子,我会取每个圆的中心像素,然后把它们画出来

我有一个基本的代码,可以将jpeg图像转换为字节数组,但是由于我不完全理解字节数组是如何存储像素的,也不知道以什么顺序存储像素,所以我不知道如何选择所需的像素。此外,一旦我选择了它们,我如何将它们连接到一个新的图像中

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;


public class SimpleConvertImage {
 public static void main(String[] args) throws IOException{
  String dirName="./";
  ByteArrayOutputStream baos=new ByteArrayOutputStream(1000);
  BufferedImage img=ImageIO.read(new File(dirName,"plants.jpg"));
  ImageIO.write(img, "jpg", baos);
  baos.flush();

  String base64String=Base64.encode(baos.toByteArray());
  baos.close();

  byte[] bytearray = Base64.decode(base64String);
  for (int i = 0; i < bytearray.length/2; i++) {
      byte t = bytearray[i];
      bytearray[i] = bytearray[bytearray.length - 1 - i];
      bytearray[bytearray.length - 1 - i] = t;
  }

  BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytearray));
  ImageIO.write(imag, "jpg", new File(dirName,"plantJava.jpg"));
 }
}
导入java.awt.image.buffereImage;
导入java.io.ByteArrayInputStream;
导入java.io.ByteArrayOutputStream;
导入java.io.File;
导入java.io.IOException;
导入javax.imageio.imageio;
导入com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
公共类SimpleConvertImage{
公共静态void main(字符串[]args)引发IOException{
字符串dirName=“./”;
ByteArrayOutputStream bas=新的ByteArrayOutputStream(1000);
buffereImage img=ImageIO.read(新文件(dirName,“plants.jpg”);
ImageIO.write(img,“jpg”,baos);
paos.flush();
String base64String=Base64.encode(baos.toByteArray());
baos.close();
字节[]bytearray=Base64.解码(base64String);
for(int i=0;i

提前谢谢。

那么你最终会得到几千张图像,每张20x20,是吗?你想用Java来做吗?您计划使用哪些库-OpenCV?图像魔术师?您在定位中心、提取20x20或哪个方面存在问题?您有没有或者可以制作一个样本输出图像?