Python论坛  - 讨论区

标题:[python-chinese] pys60如何使PNG透明?

2006年05月16日 星期二 17:46

瞄瞄 icejmx at gmail.com
Tue May 16 17:46:20 HKT 2006

在尝试按照J2ME的游戏例子做个PYS60版的....累死...
现在遇到的困难是PNG图如何透明?我导入的背景透明的PNG图放到PYS60里不是带黑色背景就是白色背景....请各位高手帮忙解决.
代码和截图在这里
http://bbs.chinaunix.net/viewthread.php?tid=756242&pid;=5165003&page;=1&extra;=page%3D2#pid5165003



-- 

==推荐==
优享-烧炙对胃口的Feed
烧录 分享 挖掘你的兴趣 推荐更好的Blog
地址-http://www.ushared.com
Demo Feed - http://www.ushared.com/qingfeng/1143981110.xml
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060516/7c61174e/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月16日 星期二 19:38

prolibertine prolibertine at gmail.com
Tue May 16 19:38:25 HKT 2006

前一段时间研究j2me得看过png格式得图片,他里面是包含透明信息得。我把资料整理一下发一下:

 /* ==================================
 * || 重点技术讲解:png图片透明处理  ||
 * ================================================================================================
 * 在PNG里每个象素是一个ARBG格式,是一个8位的十六进制的数字,比如0xff121212,这个东西描述了图片的一个象素,
 * 我们可以通过Image类中的getRGB(int[] rgbData, int offset, int scanlength, int
x, int y, int width,
 * int height) 方法获得一个rgbData,这个rgbData就保存了图片所对应的象素信息,取出象素信息之后我们需要对其
 * 进行透明效果的处理,透明效果的值是保存在8位中的最高2位,你可以把这个象素值转换成16进制输出,一般情况下最
 * 高2位应该都是为FF,也就是不透明,我们现在需要把这个FF改成一个比他小的值,那么我们的图片就透明了,最高位
 * 为00的时候图片就全透明了。
 * 其实8位16进制对应了32位的2进制,那么我们可以通过下面的方法取出他的最高2位:
 * A = Argb>>24//把这个数向右移动24位,那么剩下的8位就是我们要的最高位了
 * 修改之后我们再通过下面的方法可以把他存回去 Argb = a<<24 |( argb & 0x00FFFFFF);
 * 那么我们通过循环把这个图片的所有象素信息都改变之后,在用改变的象素信息来构造一个图片,或者这个通过我们的
 * Graphics 下面的drawRGB方法直接画出来的就是一个半透明效果的图片了,你可以在画这个图片之前先画一个其他的
 * 图片,这样你就可以很明显地看到效果了.
 * ==================================================================================================
 */


-- 
/**********************************************************
* Love in Gentoo-Linux  J2ME and Python
* Look at my website and my blog
* http://www.jnlinux.org
* 希望宝宝可以永远快乐,你是最棒的。
**********************************************************/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月18日 星期四 09:07

瞄瞄 icejmx at gmail.com
Thu May 18 09:07:23 HKT 2006

谢谢但是似乎PYS60自带的Image类里没有getRGB这种方法,我用PS建立了一个索引模式的PNG图应该和这个做法
差不多但是PYS60读取后还是不行,背景色变成了白色

在06-5-16,prolibertine <prolibertine at gmail.com> 写道:
>
> 前一段时间研究j2me得看过png格式得图片,他里面是包含透明信息得。我把资料整理一下发一下:
>
> /* ==================================
> * || 重点技术讲解:png图片透明处理  ||
> *
> ================================================================================================
> * 在PNG里每个象素是一个ARBG格式,是一个8位的十六进制的数字,比如0xff121212,这个东西描述了图片的一个象素,
> * 我们可以通过Image类中的getRGB(int[] rgbData, int offset, int scanlength, int
> x, int y, int width,
> * int height) 方法获得一个rgbData,这个rgbData就保存了图片所对应的象素信息,取出象素信息之后我们需要对其
> * 进行透明效果的处理,透明效果的值是保存在8位中的最高2位,你可以把这个象素值转换成16进制输出,一般情况下最
> * 高2位应该都是为FF,也就是不透明,我们现在需要把这个FF改成一个比他小的值,那么我们的图片就透明了,最高位
> * 为00的时候图片就全透明了。
> * 其实8位16进制对应了32位的2进制,那么我们可以通过下面的方法取出他的最高2位:
> * A = Argb>>24//把这个数向右移动24位,那么剩下的8位就是我们要的最高位了
> * 修改之后我们再通过下面的方法可以把他存回去 Argb = a<<24 |( argb & 0x00FFFFFF);
> * 那么我们通过循环把这个图片的所有象素信息都改变之后,在用改变的象素信息来构造一个图片,或者这个通过我们的
> * Graphics 下面的drawRGB方法直接画出来的就是一个半透明效果的图片了,你可以在画这个图片之前先画一个其他的
> * 图片,这样你就可以很明显地看到效果了.
> *
> ==================================================================================================
> */
>
>
> --
> /**********************************************************
> * Love in Gentoo-Linux  J2ME and Python
> * Look at my website and my blog
> * http://www.jnlinux.org
> * 希望宝宝可以永远快乐,你是最棒的。
> **********************************************************/
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


-- 
==注意==
我的第一个S60手机小游戏发布 详见BLOG
==推荐==
优享-烧炙对胃口的Feed
烧录 分享 挖掘你的兴趣 推荐更好的Blog
地址-http://www.ushared.com
Demo Feed - http://www.ushared.com/qingfeng/1143981110.xml
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060518/f43bfa49/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月18日 星期四 22:58

费振华 feizhenhua at gmail.com
Thu May 18 22:58:01 HKT 2006

楼主最近在研究PYS60么?在PC模拟器上运行程序速度还行,,但我在NG上测试感觉运行速度很慢,感觉比KJAVA的程序还慢(不过没准确测试过)不知到你用的是什么解释器啊,想向你学习PYS60的游戏设计`~

在06-5-18,瞄瞄 <icejmx at gmail.com > 写道:
>
> 谢谢但是似乎PYS60自带的Image类里没有getRGB这种方法,我用PS建立了一个索引模式的PNG图应该和这个做法
> 差不多但是PYS60读取后还是不行,背景色变成了白色
>
> 在06-5-16,prolibertine <prolibertine at gmail.com > 写道:
> >
> > 前一段时间研究j2me得看过png格式得图片,他里面是包含透明信息得。我把资料整理一下发一下:
> >
> > /* ==================================
> > * || 重点技术讲解:png图片透明处理  ||
> > *
> > ================================================================================================
> > * 在PNG里每个象素是一个ARBG格式,是一个8位的十六进制的数字,比如0xff121212,这个东西描述了图片的一个象素,
> > * 我们可以通过Image类中的getRGB(int[] rgbData, int offset, int scanlength, int
> > x, int y, int width,
> > * int height) 方法获得一个rgbData,这个rgbData就保存了图片所对应的象素信息,取出象素信息之后我们需要对其
> > * 进行透明效果的处理,透明效果的值是保存在8位中的最高2位,你可以把这个象素值转换成16进制输出,一般情况下最
> > * 高2位应该都是为FF,也就是不透明,我们现在需要把这个FF改成一个比他小的值,那么我们的图片就透明了,最高位
> > * 为00的时候图片就全透明了。
> > * 其实8位16进制对应了32位的2进制,那么我们可以通过下面的方法取出他的最高2位:
> > * A = Argb>>24//把这个数向右移动24位,那么剩下的8位就是我们要的最高位了
> > * 修改之后我们再通过下面的方法可以把他存回去 Argb = a<<24 |( argb & 0x00FFFFFF);
> > * 那么我们通过循环把这个图片的所有象素信息都改变之后,在用改变的象素信息来构造一个图片,或者这个通过我们的
> > * Graphics 下面的drawRGB方法直接画出来的就是一个半透明效果的图片了,你可以在画这个图片之前先画一个其他的
> > * 图片,这样你就可以很明显地看到效果了.
> > *
> > ==================================================================================================
> > */
> >
> >
> > --
> > /**********************************************************
> > * Love in Gentoo-Linux  J2ME and Python
> > * Look at my website and my blog
> > * http://www.jnlinux.org
> > * 希望宝宝可以永远快乐,你是最棒的。
> > **********************************************************/
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> >
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
>
> --
> ==注意==
> 我的第一个S60手机小游戏发布 详见BLOG
> ==推荐==
> 优享-烧炙对胃口的Feed
> 烧录 分享 挖掘你的兴趣 推荐更好的Blog
> 地址- http://www.ushared.com
> Demo Feed - http://www.ushared.com/qingfeng/1143981110.xml
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to   python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060518/3f03c2d0/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月19日 星期五 09:47

瞄瞄 icejmx at gmail.com
Fri May 19 09:47:17 HKT 2006

汗 我是地道的全新人 PYTHON初学 PYS60也是兴趣初学
我没测试过在我手机上的运行速度但是我感觉还可以吧 你用什么测试的 可以让我试试吗? 我的是N70
我用的就是PYS601.3 NOKIA现在提供下载的是1.2 去SOURCEFORGE有最新的

在06-5-18,费振华 <feizhenhua at gmail.com> 写道:
>
>
> 楼主最近在研究PYS60么?在PC模拟器上运行程序速度还行,,但我在NG上测试感觉运行速度很慢,感觉比KJAVA的程序还慢(不过没准确测试过)不知到你用的是什么解释器啊,想向你学习PYS60的游戏设计`~
>
> 在06-5-18,瞄瞄 < icejmx at gmail.com > 写道:
>
> > 谢谢但是似乎PYS60自带的Image类里没有getRGB这种方法,我用PS建立了一个索引模式的PNG图应该和这个做法
> > 差不多但是PYS60读取后还是不行,背景色变成了白色
> >
> > 在06-5-16,prolibertine <prolibertine at gmail.com > 写道:
> > >
> > > 前一段时间研究j2me得看过png格式得图片,他里面是包含透明信息得。我把资料整理一下发一下:
> > >
> > > /* ==================================
> > > * || 重点技术讲解:png图片透明处理  ||
> > > *
> > > ================================================================================================
> > > * 在PNG里每个象素是一个ARBG格式,是一个8位的十六进制的数字,比如0xff121212,这个东西描述了图片的一个象素,
> > > * 我们可以通过Image类中的getRGB(int[] rgbData, int offset, int scanlength, int
> > > x, int y, int width,
> > > * int height) 方法获得一个rgbData,这个rgbData就保存了图片所对应的象素信息,取出象素信息之后我们需要对其
> > > * 进行透明效果的处理,透明效果的值是保存在8位中的最高2位,你可以把这个象素值转换成16进制输出,一般情况下最
> > > * 高2位应该都是为FF,也就是不透明,我们现在需要把这个FF改成一个比他小的值,那么我们的图片就透明了,最高位
> > > * 为00的时候图片就全透明了。
> > > * 其实8位16进制对应了32位的2进制,那么我们可以通过下面的方法取出他的最高2位:
> > > * A = Argb>>24//把这个数向右移动24位,那么剩下的8位就是我们要的最高位了
> > > * 修改之后我们再通过下面的方法可以把他存回去 Argb = a<<24 |( argb & 0x00FFFFFF);
> > > * 那么我们通过循环把这个图片的所有象素信息都改变之后,在用改变的象素信息来构造一个图片,或者这个通过我们的
> > > * Graphics 下面的drawRGB方法直接画出来的就是一个半透明效果的图片了,你可以在画这个图片之前先画一个其他的
> > > * 图片,这样你就可以很明显地看到效果了.
> > > *
> > > ==================================================================================================
> > > */
> > >
> > >
> > > --
> > > /**********************************************************
> > > * Love in Gentoo-Linux  J2ME and Python
> > > * Look at my website and my blog
> > > * http://www.jnlinux.org
> > > * 希望宝宝可以永远快乐,你是最棒的。
> > > **********************************************************/
> > >
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> > >
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
> >
> > --
> > ==注意==
> > 我的第一个S60手机小游戏发布 详见BLOG
> > ==推荐==
> > 优享-烧炙对胃口的Feed
> > 烧录 分享 挖掘你的兴趣 推荐更好的Blog
> > 地址- http://www.ushared.com
> > Demo Feed - http://www.ushared.com/qingfeng/1143981110.xml
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060519/16bd217d/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号