Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将BuffereImage的像素复制到列表_Java_Image - Fatal编程技术网

Java-将BuffereImage的像素复制到列表

Java-将BuffereImage的像素复制到列表,java,image,Java,Image,我制作了一个包含像素列表的位图类。像素类具有位置和颜色。现在我正在尝试从BuffereImage获取位图 这是我尝试过的代码: private static Bitmap fromImage(BufferedImage image) { Bitmap bitmap = new Bitmap(); for (int x = image.getMinX(); x < image.getWidth(); x++) { for (in

我制作了一个包含像素列表的位图类。像素类具有位置和颜色。现在我正在尝试从BuffereImage获取位图

这是我尝试过的代码:

    private static Bitmap fromImage(BufferedImage image) {
        Bitmap bitmap = new Bitmap();
        for (int x = image.getMinX(); x < image.getWidth(); x++) {
            for (int y = image.getMinY(); y < image.getHeight(); y++) {
                bitmap.setPixel(new Pixel(RGBAColor.fromColor(
                        new Color(image.getRGB(x, y))), new Vector2(x, y)));
            }
        }
        return bitmap;
    }
    public static Bitmap fromImage(String path) {
        try {
            BufferedImage img = ImageIO.read(Galaxy2D.class.getResource(
                    "/com/mcmastery/galaxy2d/resources/" + path));
            BufferedImage conImg = new BufferedImage(img.getWidth(), img.getHeight(), 
            BufferedImage.TYPE_INT_ARGB);
            conImg.createGraphics().drawImage(img, 0, 0, null);
            return Bitmap.fromImage(conImg);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
private静态位图fromImage(buffereImage图像){
位图位图=新位图();
对于(int x=image.getMinX();x
它可以工作,但当它将图像绘制到屏幕上时,会使图像失真。
原始图像:
使用位图方法将图像绘制到屏幕:


我也尝试过DataBufferInt,但它仍然产生相同的结果。对于其他图像,它只是将一些像素的位置更改为接近它们应该位于的位置。但是上面的十字线会使其变黑并扭曲。

不确定位图的用途(我在JDK7API中找不到它)


也许你可以使用
BufferedImage
getSubImage(…)
方法,我说我自己制作了位图类。我正在制作一个小游戏引擎,我想基本上重写所有使用的java类,所以使用引擎的游戏只使用从引擎导入的内容。我想将图像中的所有像素复制到我的bitmap类中的像素列表中,这样我就看不出为什么你不能使用getSubImage()方法来处理游戏中的完整图像。我不知道你为什么关心单个像素。所以我可以把它们复制到一个列表中。我不想使用默认的图像类。