在这个例程当中,主要讲了将一个图片压缩成字节流,然后转化成数组 在变成图片的故事。
首先 图片压缩成流 在转变成图片的方法还是值得学习的:
private static Bitmap codec(Bitmap src, Bitmap.CompressFormat format,
int quality) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
src.compress(format, quality, os);
byte[] array = os.toByteArray();
return BitmapFactory.decodeByteArray(array, 0, array.length);
}
初始化 图片:
mBitmaps = new Bitmap[6];
// these three are initialized with colors[]
mBitmaps[0] = Bitmap.createBitmap(colors, 0, STRIDE, WIDTH, HEIGHT,
Bitmap.Config.ARGB_8888);
mBitmaps[1] = Bitmap.createBitmap(colors, 0, STRIDE, WIDTH, HEIGHT, Bitmap.Config.RGB_565);
mBitmaps[2] = Bitmap.createBitmap(colors, 0, STRIDE, WIDTH, HEIGHT,
Bitmap.Config.ARGB_4444);
// these three will have their colors set later
mBitmaps[3] = Bitmap.createBitmap(WIDTH, HEIGHT,
Bitmap.Config.ARGB_8888);
mBitmaps[4] = Bitmap.createBitmap(WIDTH, HEIGHT,
Bitmap.Config.RGB_565); mBitmaps[5] = Bitmap.createBitmap(WIDTH, HEIGHT,
Bitmap.Config.ARGB_4444);
for (int i = 3; i <= 5; i++) {
mBitmaps[i].setPixels(colors, 0, STRIDE, 0, 0, WIDTH, HEIGHT);
}
for (int i = 0; i < mBitmaps.length; i++) {
mJPEG[i] = codec(mBitmaps[i], Bitmap.CompressFormat.JPEG, 80);
mPNG[i] = codec(mBitmaps[i], Bitmap.CompressFormat.PNG, 0);
最后将图片绘画在屏幕上
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
for (int i = 0; i < mBitmaps.length; i++) {
canvas.drawBitmap(mBitmaps[i], 0, 0, null);
canvas.drawBitmap(mJPEG[i], 80, 0, null);
canvas.drawBitmap(mPNG[i], 160, 0, null);
canvas.translate(0, mBitmaps[i].getHeight());
}
// draw the color array directly, w/o craeting a bitmap object
canvas.drawBitmap(mColors, 0, STRIDE, 0, 0, WIDTH, HEIGHT,
true, null);
canvas.translate(0, HEIGHT);
canvas.drawBitmap(mColors, 0, STRIDE, 0, 0, WIDTH, HEIGHT,
false, mPaint);
}
上面的绘制 有三种情况 绘制jpeg 绘制png 直接绘制原数组。
mBitmaps[i].setPixels(colors, 0, STRIDE, 0, 0, WIDTH, HEIGHT);
也可以通过上面的方式来改变颜色
分享到:
相关推荐
在Android平台上开发一款画图工具,不仅可以满足用户日常的手绘需求,还可以为艺术家提供创作空间。本篇文章将深入解析“Android代码-画图工具源码.zip”中的关键知识点,帮助开发者理解和构建自己的Android画图应用...
比较好用的电子教鞭,可以不锁定屏幕情况下画图。
在Android平台上,开发一款画图程序可以为用户提供一个创意表达的平台,让他们通过手指或触控笔绘制出自己的作品。这个"Android代码-画图程序源码.zip"压缩包包含了实现这样一个功能的源代码,我们可以从中学到许多...
例如,我们可以创建一个名为"Picture1"到"Picture10"的图片框控件数组,其中每个控件都可用于画图。 创建控件数组有两种方式:在设计时或在运行时。在设计时,可以在VB的Form设计器中一次性放置多个控件,并设置...
如何使用pandas解析数据并存储,再利用matplotlib画图------data1.csv
海龟画图-凯蒂猫-python代码
3. 绘图逻辑:这是核心部分,将数组数据转化为图形。这可能涉及到计算每个数据点的位置,然后调用图形组件的绘图方法,如DrawLine或DrawPoint。 4. 更新机制:这部分代码负责在数据变化时更新图形。可能是通过事件...
在Android平台上,开发一款画图着色应用是一个有趣且实用的项目,尤其对于教育和娱乐领域。本项目的核心是提供一个界面,用户可以在这里绘制、填充颜色,进行素描活动,帮助孩子们提升创造力和手眼协调能力。下面将...
海龟画图-机器猫-python代码
在Android平台上,开发...通过学习和分析这个Android画图程序源码,开发者不仅可以掌握基本的Android编程技能,还能深入了解图形绘制、用户交互和文件操作等高级主题,为将来进行更复杂的Android应用开发打下坚实基础。
python mat 画图-樱花树
4. 用户交互:为了使用户能够触发画图、浏览图片和播放图片的操作,需要设置UI元素(如按钮)并为它们添加点击监听器。在监听器的回调中,执行相应的功能代码。 5. 性能优化:考虑到Android设备的多样性和性能差异...
【国家自然科学基金】-画图-基金支持热词逐年推荐-【万方软件创新助手】-20140801.pdf
"markers-for-android"是一款专为Android平台设计的画图软件的源代码库,它提供了丰富的绘图功能,包括压感支持和多指触控画图。这个项目对于想要深入理解Android图形绘制、触摸事件处理以及自定义View的开发者来说...
最终,用户可以保存这个Texture2D为图片文件。 10. **Undo/Redo功能**:为了提供用户友好的体验,可能需要实现撤销/重做功能。这可以通过记录每次绘制操作前后的状态,然后在用户请求时回滚或前进。 以上是构建...
Android 画图程序源码分析 在Android平台上开发一款画图程序,涉及到许多核心技术和组件。这个"Android 画图程序源码.rar"文件提供了一个实际的案例,可以帮助我们深入理解Android图形系统的工作原理,以及如何创建...
地震数据剖面画图-Matlab程序
本教程“python画图-22-列表修改数据”着重讲解如何利用Python对列表进行操作,特别是在数据分析和可视化过程中如何处理列表中的数据。我们将探讨以下几个关键知识点: 1. **列表创建与访问**:在Python中,可以...
"python画图-21-列表删除数据.ev4.mp4"这个视频教程很可能是通过实例演示了如何在Python中删除列表中的数据并结合可视化来展示这一过程。 首先,Python提供了多种方法来删除列表中的数据: 1. **pop()** 方法:此...
JavaScript应用实例-n阶贝塞尔曲线画图-2.js