`
mfcai
  • 浏览: 407631 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

j2me:图片透明化处理

阅读更多
在MIDP2.0的图片编程中,可以把图片理解为一个int[]数组,数组中的每个数据都与图片中的一个像素对应。数组中的int类型的数据被分为4个部分,每个部分由8bit字节构成,分别代表Alpha通道,red通道,green通道,blue通道。其中,rgb代表图片颜色的组成,A代表图片的透明度。1111 1111代表像素完全不透明,0000 0000代表像素完全透明,介于两者之间的则代表半透明像素。

   MIDP2.0中,Graphics类中有drawRGB方法,用该方法可以将指定的区域设为特定的颜色数据。这个方法的声明如下:
void drawRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height, boolean processAlpha);
参数的意义分别为:
          rgbData: 图片的数据
          offset:第一个像素数据的索引
          scanlength: 扫描行的宽度,即要写的数据的宽度,这个值一般与后面的width相同
          x: 表示区域开始的x坐标
          y: 表示区域开始的y坐标
          width:这个区域的宽度
          height: 这个区域的高度

  修改了数组中int类型数据的Alpha通道的值,也就修改了图片的透明度。如下:
      1.取得的每一个像素颜色是一个int类型的值
      2.将每个像素的透明度修改为完全透明
for (int i = 0; i < rgbData.length; i++) {
  if(imgData[i] & 0x00FFFFFF == 0x00FFFFFF) {
   rgbData[i] = rgbData[i] & 0x00FFFFFF;
  }
 }


介于00-ff之间,则为半透明.

完整代码如下:
class MyCanvas extends Canvas {
 protected void paint(Graphics g) {
  try {
   g.setColor(0xffffff);
   g.fillRect(0, 0, getWidth(), getHeight());
   Image image = Image.createImage("/form_bg2.png");
    image =createAlphaImage(image,0xffffffff);
   g.drawImage(image, 0, 0, 0);

  } catch (Exception ex) {
   System.out.println(ex.toString());
  }
 }

 
    //图片设为透明
 private static Image createAlphaImage(Image img, int alphaColor) {
  int w = img.getWidth();
  int h = img.getHeight();
  int[] imgData = new int[w * h];
  int a=254;
  img.getRGB(imgData, 0, w , 0, 0, w, h);
  for (int i = 0; i < imgData.length; i++) {
   if ((imgData[i] & alphaColor) == alphaColor) {
    imgData[i] = (a<<24 )| (imgData[i] & alphaColor);
   }
  }
  Image immutableImg = Image.createRGBImage(imgData, w, h, true);
  return immutableImg;
 }

}
分享到:
评论
3 楼 gundumw100 2010-06-02  
你确定这个算法imgData[i] = (a<<24 )| (imgData[i] & alphaColor);  正确?
我怎么不可以?
应该是imgData[i] =0x00000000吧,这样才是透明
2 楼 Java1008 2010-05-28  
imgData[i] = (a<<24 )| (imgData[i] & alphaColor); 


小弟问下 这干什么用的
1 楼 鸟哥哥 2010-01-26  
gameloft就很喜欢用
Image.createRGBImage();  方法

相关推荐

    十一周作业.zip

    项目学习分享。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    基于Springboot和Vue的获奖的知名作家信息管理系统源码 获奖的知名作家信息管理系统代码

    获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统 1、资源说明:获奖的知名作家信息管理系统源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/detail

    基于matlab的作业调度问题 采用遗传算法,解决作业调度问题 一共三个作业,每个作业有不同的时间长度和紧急程度,超过时间会

    基于matlab的作业调度问题。 采用遗传算法,解决作业调度问题。 一共三个作业,每个作业有不同的时间长度和紧急程度,超过时间会有惩罚措施。 通过遗传算法计算出最好的作业安排,使得惩罚最小,获益最大。 最终结果通过GUI用甘特图的方式展示出来。 更根据订单需求和时间需求匹配自己的情况。 程序已调通,可直接运行。

    opencv图像处理实例编程

    opencv图像处理实例编程

    run nian 12345678.exe

    run nian 12345678.exe

    2020年计算机和网路技术基础自考真题和答案.pdf

    计算机试题试卷课件

    C++23中文手册.zip

    C++23中文手册C++23中文手册C++23中文手册C++23中文手册C++23中文手册C++23中文手册

    沁园健身房预约管理系统.zip

    沁园健身房预约管理系统.zip 沁园健身房预约管理系统.zip 沁园健身房预约管理系统.zip

    Python高级爬虫技术详解

    内容概要:本文档详细介绍了使用Python进行爬虫的全过程,包括HTTP协议和HTTP请求库requests的基础入门知识与实战案例介绍;常用的基本爬虫工具,文件处理的方法,比如读写各类文件和文件路径的操作以及CSV和JSON文件数据处理;通过正则表达式的使用帮助精准抽取页面上的数据;JavaScript渲染和动态加载相关内容,通过Selenium处理爬虫遇到的渲染问题,并讨论多线程的应用来提升抓取速度;此外还有数据储存的不同方式如使用各种数据库或CSV、JSON文件的详细介绍;探讨了如何对抗反爬虫机制如代理池、User-agent池建设,验证码识别技术和如何处理限制请求数频率等问题;同时介绍了分布式爬虫的关键组成部分和技术解决方案。这些知识点使得读者能够掌握爬虫领域的核心技术与实操流程。 适合人群:具有一定Python编程经验和想了解高效数据抓取的研发技术人员、中级爬虫工程师等专业人士。 使用场景及目标:本文适合从事数据搜集工作的从业人员,目的是学会运用Python开展高效稳定的网站爬虫工程,能应对复杂的目标网站、反爬措施以及高性能爬取。

    腾讯开源QUIC协议:TQUIC

    腾讯开源QUIC协议:TQUIC,github链接:https://github.com/tencent/tquic

    项目学习分享:运用opencv识别手指个数.zip

    项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip项目学习分享:运用opencv识别手指个数.zip

    基于文本挖掘的新能源汽车评论情感分析

    基于文本挖掘的新能源汽车评论情感分析

    官方{2712×1220}.zip

    官方{2712×1220}.zip

    目标检测红外检测人车狗猫数据集19000张VOC+YOLO格式.zip

    数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):19069 标注数量(xml文件个数):19069 标注数量(txt文件个数):19069 标注类别数:4 标注类别名称:["car","cat","dog","person"] 每个类别标注的框数: car 框数 = 7851 cat 框数 = 572 dog 框数 = 2282 person 框数 = 46693 总框数:57398 使用标注工具:labelImg 标注规则:对类别进行画矩形框

    结合疫情情况的婚恋系统.zip

    结合疫情情况的婚恋系统.zip 结合疫情情况的婚恋系统.zip 结合疫情情况的婚恋系统.zip

    MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络数据分类预测(包含详细的完整的程序和数据)

    内容概要:本文详细介绍了使用MATLAB和鲸鱼优化算法(WOA)来优化卷积神经网络(CNN),完成数据分类预测的具体方法。包括合成数据集的创建、数据预处理、CNN模型构建、WOA的集成及优化过程、训练后的模型评估等内容,并提供了可直接运行的代码。 适用人群:具备MATLAB和深度学习基础知识的研究人员和开发人员。 使用场景及目标:适用于需要对大量图像数据进行高效分类的应用场景,尤其是希望使用元启发式算法提升机器学习模型表现的情形。 阅读建议:通过跟随文中步骤实施每个环节——从合成样本的设计,直至利用最优超参数设置训练模型,再到最终的分类精度检验,读者可以获得对鲸鱼算法和CNN如何协同工作的全面理解。

    大创项目-区块链追溯系统.zip大创项目-区块链追溯系统.zip

    大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区块链追溯系统.zip大创项目——区

    适用于ESP32-CAM Micropython开发的Windows7/8.1/10/11的工具

    Thonny的py38版本用于Windows7,另一个用于更高版本 固件全版本通用

    2020年大学《计算机基础》期末完整考题库500题(含答案).pdf

    计算机试题试卷课件

    hello world 123.exe

    hello world 123.exe

Global site tag (gtag.js) - Google Analytics