永发信息网

java根据int数组画图

答案:3  悬赏:10  手机版
解决时间 2021-02-27 08:48
  • 提问者网友:欲望失宠
  • 2021-02-27 05:03
这里有一个图片的int型数组,数组的每个元素存储的是图片的一个像素的值,顺序是从左到右,从上到下,如何根据这个数组打印出图片?要有java程序。
最佳答案
  • 五星知识达人网友:行路难
  • 2021-02-27 05:50
public void printImage(int b[]) throws IOException
{
BufferedImage ImageNew = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
ImageNew.setRGB(0,0,width,height,b,0,width);//设置左半部分的RGB
File outFile = new File("E:\\out.JPG");
ImageIO.write(ImageNew, "png", outFile);//写图片
ImageProducer ip = new MemoryImageSource(width, height, b, 0,width);

final Image im2 = java.awt.Toolkit.getDefaultToolkit().createImage(ip);

JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) {

g.drawImage(im2, 0, 0, 800, 600, this);
}
};
this.add(panel);
this.setSize(width,height);
setVisible(true);
}
全部回答
  • 1楼网友:北方的南先生
  • 2021-02-27 07:13
给你个j2me的参考下 public static Image RGBreverseRGB(Image image) { // System.out.println("reverseRGB IN"); int width = image.getWidth(); int height = image.getHeight(); // 获得图像的ARGB数据,存储在rawInt里 int[] raw = null; try { raw = new int[width * height]; image.getRGB(raw, 0, width, 0, 0, width, height); int len = raw.length; // 开始循环,获得图像里每个像素的颜色,然后处理 for (int i = 0; i < len; i++) { // 获得像素的颜色 int color = raw[i]; // System.out.println(Integer.toHexString(color)); // 获得alpha int alpha = 0xFF; // System.out.println(Integer.toHexString(alpha)); // 获得红色 int red = (color & 0x00FF0000) >> 16; // System.out.println(Integer.toHexString(red)); // 获得绿色 int green = (color & 0x0000FF00) >> 8; // System.out.println(Integer.toHexString(green)); // 获得蓝色 int blue = (color & 0x000000FF); // System.out.println(Integer.toHexString(blue)); // 翻转颜色 red = 0xFF - red; green = 0xFF - green; blue = 0xFF - blue; // 生成新颜色 // System.out.println(Integer.toHexString((alpha << 24)+ (red << // 16)+(green << 8))); color = (alpha << 24) + (red << 16) + (green << 8) + blue; // System.out.println(Integer.toHexString(color)); raw[i] = color; } // System.out.println("blendRGB OUT"); return Image.createRGBImage(raw, width, height, true); } catch (Error e) { // e.printStackTrace(); // ImageAlbum.showAlert("图像尺寸太大,不能完成此操作."); return image; } catch (Exception e) { e.printStackTrace(); return image; } finally { raw = null; } }
  • 2楼网友:長槍戰八方
  • 2021-02-27 06:24
public class Print { public static void main(String[] args) { int[][] s={{1,2,3,4,5,6,7,8},{1,2,3,4,5,6,7,8},{1,2,3,4,5,6,7,8}}; System.out.println(s[1][0]); for(int i=0;i
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯