高分求高手!怎样生成透明的可修改Image?或者旋转图片?

flyingghost 2004-03-24 06:14:22
由于是用midp1.0,需要自己写图片旋转和翻转的函数。

现有img1为一透明背景图片,采用
public Image rotate90Image(Image original) {
Image copy;
copy = Image.createImage(original.getHeight(), original.getWidth());
Graphics g = copy.getGraphics();
rotate90Draw(original, g, 0, 0);
return Image.createImage(copy);
}
的方法由此image对象生成一个顺时针旋转90度的image并返回。

可是问题在于,用
copy = Image.createImage(original.getHeight(), original.getWidth());
这行代码生成可修改的image不是透明的!!!而是白色背景的!
而原img1是透明背景图片。
请问怎样才能生成透明背景的可修改image对象???
或者说,怎样才可以把一个透明图片旋转???
谢谢!
...全文
94 点赞 收藏 27
写回复
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
mshaolin 2004-07-22
可怜
回复
Ryu2000 2004-04-01
用一张足够大的透明图片。
生成翻转图片的时候,用这个来生成。
画翻转图片的时候,clip出来画。

上面louisqiang(tenwin)也提到了。
//
可以用一个大一点的图象,然后clip一部分。
//

这样的做法有个缺点,就是比较耗Memory

关于msn。
公司不能上msn,天天加班到很晚,回去都睡觉了,没有空上msn。
不好意思。
好像我已经把你加为好友了。

你刚刚开始做j2me,就做这么难的东西,很厉害阿。
我要做了半年,才开始意识到向这个方向进行考虑。
回复
flyingghost 2004-04-01
呵呵不好意思。。。偶才做两个月。。。有时喜欢异想天开。。。大家表介意^_^

Ryu2000(“死神”迪奥) 的

用一张足够大的透明图片。
生成翻转图片的时候,用这个来生成。

是什么意思?还是不大明白。
Image类的四个createImage方法,只有createImage(int width, int height)一个可以生成可修改的image对象,而这样生成image以后,它已经是不透明的了。
回复
flyingghost 2004-03-31
Ryu2000(“死神”迪奥)

可是如果你只是用来实现一张透明图片的话,可能就真的太浪费了。
还是用一张透明的大的图片来的实际一点。

麻烦你详细解释一下!
还有,加你msn咋就没回音ni?
偶的flyingghost@msn.com希望认识同道中人^_^
回复
midamia 2004-03-31
这种研究有意义吗?
回复
CoLinM 2004-03-31
mark
回复
Ryu2000 2004-03-31
>flyingghost(游魂)
我觉得可以的。可是如果你只是用来实现一张透明图片的话,可能就真的太浪费了。
还是用一张透明的大的图片来的实际一点。

>midamia(戒骄戒躁,不忘本色)
可能你Nokia的机器做得多了。有一些扩展的API能用,所以不觉得什么了。
By the way,听说你是天津猛犸,不知道是不是真的。现在好像新出了一个飞机的游戏,从宣传话来看,做得不错啊。

我因为用MIDP1.0用的多了,就觉得很多地方碰到容量的问题了。
如果要在MIDP1.0里面做的话,可能只能写这些底层的东西。
同时自己觉得和现在手机做游戏相比,我觉得写这种更底层的东西,难度更大,同时成就感也更大一些。
回复
flyingghost 2004-03-30
可是通了png,还要通解压算法?
等一系列的程序都实现了,会有多大?能在手机上运行吗?
我好像已经决定放弃这个问题了。。。。。
回复
flyingghost 2004-03-29
我要的就是MIDP1.0的!
nokia或者MIDP2.0的话都好办。
回复
programer23 2004-03-27
flyingghost(游魂)讲的很明白了。
回复
midamia 2004-03-27
这个贴子好,有深度。我发现最近这里的朋友水平都有提高,很高兴。
如果楼主只针对Nokia就简单了,DirectGraphics类可以轻松解决。
回复
flyingghost 2004-03-26
突然想起来。。。我知道了png格式能怎么样???!!!
本来我想直接读png文件为byte数组,然后自己分析其格式,然后画在canvas上或者image上。
可是,突然想起来,png文件是压缩数据!
难道我还要先研究一下怎么解压???
那最终画一个图的流程变成
读字节流->解压->分析格式->逐点画图
在手机上得花多少时间???!!!
残念。。。。。。(-_-);
回复
Ryu2000 2004-03-26
一点都没有错。
就是这样子的。
回复
flyingghost 2004-03-25
to hanpine(老品)
所以我想只画一次到一个image对象里,然后就可以多次用了。
可惜解决不了图片变不透明的办法。

to louisqiang(tenwin) & Ryu2000(“死神”迪奥)
png格式。。。我也考虑过,但是看那个png英文文档太麻烦了。
我看阴文非常的慢,最近又没时间。

嘿嘿要是哪位老兄能代劳一下就最ok了^_^
http://www.w3.org/TR/REC-png.html

分数不成问题,偶可用分4k,只要管理员不打。。。。。
回复
louisqiang 2004-03-25
我建议你
利用static Image createImage(byte[] imageData, int imageOffset, int imageLength)
生成一个全透明图象,然后在做处理,不要用
public static Image createImage(int width,int height)
the newly created image is white.
因为他生成的图象就是空白的(不透明)。

若用数组不行,可以图象处理工具做一个透明图象
然后使用static Image createImage(Image source)

然后再在上面画图。
回复
louisqiang 2004-03-25
图象逐点画的方法是图象处理的一般方法,若想快,只有采用硬件中断,实现硬件刷屏的方式。但那样的话。。。。。。
回复
louisqiang 2004-03-25
可以用一个大一点的图象,然后clip一部分。

用数组,我没有使用过,效果怎样,要写一段代码测试。但该方法的使用是简单的
数组是png文件的流转换的字节数组。后面的参数是数据开始和使用长度。
回复
牢牢劳 2004-03-25
这样的图片翻转方法有些不妥噢,我看不用也罢,如果只画一次,勉强说得过去,如果是循环画,太浪费cpu资源了
回复
asdmonster 2004-03-25
maek
回复
flyingghost 2004-03-25
加了!

怎么没人关注了!顶!
计划手头事做完就去看png格式。终极解决方案。^_^
回复
发动态
发帖子
J2ME
创建于2007-09-28

1.3w+

社区成员

Java J2ME
申请成为版主
社区公告
暂无公告