CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

高分求教,我把一个image对象打成了int[],但是我怎么把这个int[]再专成image呢!?

楼主renlinan(衍生类)2003-11-03 14:42:51 在 Java / J2SE / 基础类 提问

我用如下的方法作的,但是生成的是图片时一片漆黑。  
  其中tempImage就是这个像素数组。  
          MemoryImageSource   ms=new   MemoryImageSource(292,171,java.awt.image.ColorModel.getRGBdefault(),tempImage,0,1);  
          Toolkit   tk=Toolkit.getDefaultToolkit();  
          Image   img=tk.createImage((ImageProducer)ms);     //我这样强专行么?  
          if   (img!=null)   {  
              System.out.println("Yeah!Image   isn't   null");  
          }  
          BufferedImage   bimg=new   BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_RGB);  
          bimg.createGraphics().drawImage(img,0,0,null);  
  这样出来后,生成的图片是一团的漆黑!是img错误,还是bimg错误!  
  请高手指正!  
  希望能有源码!谢谢了! 问题点数:100、回复次数:7Top

1 楼LoveRose(旺旺)回复于 2003-11-03 15:02:26 得分 0

MemoryImageSource   ms=new   MemoryImageSource(292,171,java.awt.image.ColorModel.getRGBdefault(),tempImage,0,1);  
   
  应该是这个的问题Top

2 楼renlinan(衍生类)回复于 2003-11-03 16:40:47 得分 0

为什么呢!?望进一步指正!Top

3 楼LoveRose(旺旺)回复于 2003-11-03 16:47:44 得分 50

jdk文档上有个例子是这样的:  
   
  This   class   is   an   implementation   of   the   ImageProducer   interface   which   uses   an   array   to   produce   pixel   values   for   an   Image.   Here   is   an   example   which   calculates   a   100x100   image   representing   a   fade   from   black   to   blue   along   the   X   axis   and   a   fade   from   black   to   red   along   the   Y   axis:    
   
     
  int   w   =   100;  
  int   h   =   100;  
  int   pix[]   =   new   int[w   *   h];  
  int   index   =   0;  
  for   (int   y   =   0;   y   <   h;   y++)   {  
          int   red   =   (y   *   255)   /   (h   -   1);  
          for   (int   x   =   0;   x   <   w;   x++)   {  
  int   blue   =   (x   *   255)   /   (w   -   1);  
  pix[index++]   =   (255   <<   24)   |   (red   <<   16)   |   blue;  
          }  
  }  
  Image   img   =   createImage(new   MemoryImageSource(w,   h,   pix,   0,   w));  
   
  Top

4 楼renlinan(衍生类)回复于 2003-11-03 17:32:43 得分 0

不是这个的问题!我试过了!因为我是在consle程序里面把它专成image对象的所以我怀疑是toolkit的问题,因为我觉得如果在applet中的话,默认的就有createimage方法,但是在consle程序里面就没有这个createimage()方法,只能用toolkit。会不会是这个的问题!?Top

5 楼yayv(yayv)回复于 2003-11-03 21:38:55 得分 50

我试过你的代码了,用的就是你的代码和MemoryImageSource中的代码,没有问题呀。  
  Top

6 楼renlinan(衍生类)回复于 2003-11-04 09:33:39 得分 0

to:   yayv(yayv)    
  但是我从生成的image,专成文件的时候怎么回事一片漆黑呢!我在本地试的时候,因为没有把image打成int[],直接把image保存成文件就没有问题,但是一旦打成int[]在专成image就有问题了!声称的图片一片漆黑!  
  Top

7 楼renlinan(衍生类)回复于 2003-11-04 12:15:43 得分 0

谢谢大家,我的问题解决了!Top

相关问题

  • 如何将Bitmap对象转换为Image对象
  • 如何将string 对象 转换为 int?
  • int 不能赋给Object对象?
  • int类型的数组是对象吗?
  • 如何直接写入image对象呢?
  • 如何从Clipboard中取出BMP图象到bitmap对象或image对象?
  • 再问:如何把Image对象给image控件?
  • IDE工具(比如JBUILDER)里面,输入一个对象之后再打“.”成员操作符号,会自动显示出方法跟成员变量?这个功能是怎么实现的?
  • CString类和double型int型对象如何相互转换?
  • 怎样把CString对象转换成 int类型

关键词

  • null
  • memoryimagesource
  • bimg
  • tempimage
  • image
  • bufferedimage
  • img
  • ms

得分解答快速导航

  • 帖主:renlinan
  • LoveRose
  • yayv

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo