首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中绘制像素图像

在java中绘制像素图像
EN

Stack Overflow用户
提问于 2018-10-28 04:51:22
回答 1查看 555关注 0票数 -4

我有一个数组int28,由数字0-255组成。0-黑色,255 -白色。我需要制作一个大小为28x28px的图像。该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-28 05:43:46

从概念上讲,这个想法很简单。BufferedImage可能是更好的选择之一,因为它提供了一个可以编写的可变缓冲区。可以显示并输出到磁盘。

您需要解决的问题是将“颜色”转换为接口使用的“压缩的int”值。

虽然这实际上是一个相当常见的解决方案,但我看到太多人在实现算法时犯了简单的错误,所以我转而使用可用的Color类。它不是那么“高效”,但我不认为你正在尝试产生一个每秒需要运行数百帧的解决方案;)

代码语言:javascript
复制
Random rnd = new Random();
int[][] pixels = new int[128][128];
for (int y = 0; y < 128; y++) {
    for (int x = 0; x < 128; x++) {
        pixels[y][x] = rnd.nextInt(255);
    }
}

BufferedImage img = new BufferedImage(128, 128, BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < 128; y++) {
    for (int x = 0; x < 128; x++) {
        Color color = new Color(pixels[y][x], pixels[y][x], pixels[y][x]);
        img.setRGB(x, y, color.getRGB());
    }
}
JOptionPane.showMessageDialog(null, new JLabel(new ImageIcon(img)));
try {
    ImageIO.write(img, "png",  new File("SuperDuppa.png"));
} catch (IOException ex) {
    ex.printStackTrace();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53026171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档