在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;
}
}
分享到:
相关推荐
项目学习分享。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括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
获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统-获奖的知名作家信息管理系统 1、资源说明:获奖的知名作家信息管理系统源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/detail
基于matlab的作业调度问题。 采用遗传算法,解决作业调度问题。 一共三个作业,每个作业有不同的时间长度和紧急程度,超过时间会有惩罚措施。 通过遗传算法计算出最好的作业安排,使得惩罚最小,获益最大。 最终结果通过GUI用甘特图的方式展示出来。 更根据订单需求和时间需求匹配自己的情况。 程序已调通,可直接运行。
opencv图像处理实例编程
run nian 12345678.exe
计算机试题试卷课件
C++23中文手册C++23中文手册C++23中文手册C++23中文手册C++23中文手册C++23中文手册
沁园健身房预约管理系统.zip 沁园健身房预约管理系统.zip 沁园健身房预约管理系统.zip
内容概要:本文档详细介绍了使用Python进行爬虫的全过程,包括HTTP协议和HTTP请求库requests的基础入门知识与实战案例介绍;常用的基本爬虫工具,文件处理的方法,比如读写各类文件和文件路径的操作以及CSV和JSON文件数据处理;通过正则表达式的使用帮助精准抽取页面上的数据;JavaScript渲染和动态加载相关内容,通过Selenium处理爬虫遇到的渲染问题,并讨论多线程的应用来提升抓取速度;此外还有数据储存的不同方式如使用各种数据库或CSV、JSON文件的详细介绍;探讨了如何对抗反爬虫机制如代理池、User-agent池建设,验证码识别技术和如何处理限制请求数频率等问题;同时介绍了分布式爬虫的关键组成部分和技术解决方案。这些知识点使得读者能够掌握爬虫领域的核心技术与实操流程。 适合人群:具有一定Python编程经验和想了解高效数据抓取的研发技术人员、中级爬虫工程师等专业人士。 使用场景及目标:本文适合从事数据搜集工作的从业人员,目的是学会运用Python开展高效稳定的网站爬虫工程,能应对复杂的目标网站、反爬措施以及高性能爬取。
腾讯开源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
基于文本挖掘的新能源汽车评论情感分析
官方{2712×1220}.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
内容概要:本文详细介绍了使用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大创项目——区
Thonny的py38版本用于Windows7,另一个用于更高版本 固件全版本通用
计算机试题试卷课件
hello world 123.exe