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

android画图------字节数组转化为图片

阅读更多
在这个例程当中,主要讲了将一个图片压缩成字节流,然后转化成数组 在变成图片的故事。
首先 图片压缩成流 在转变成图片的方法还是值得学习的:
  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代码-画图工具源码.zip

    在Android平台上开发一款画图工具,不仅可以满足用户日常的手绘需求,还可以为艺术家提供创作空间。本篇文章将深入解析“Android代码-画图工具源码.zip”中的关键知识点,帮助开发者理解和构建自己的Android画图应用...

    任意画图--电子教鞭

    比较好用的电子教鞭,可以不锁定屏幕情况下画图。

    Android代码-画图程序源码.zip

    在Android平台上,开发一款画图程序可以为用户提供一个创意表达的平台,让他们通过手指或触控笔绘制出自己的作品。这个"Android代码-画图程序源码.zip"压缩包包含了实现这样一个功能的源代码,我们可以从中学到许多...

    VB 控件数组画图实例

    例如,我们可以创建一个名为"Picture1"到"Picture10"的图片框控件数组,其中每个控件都可用于画图。 创建控件数组有两种方式:在设计时或在运行时。在设计时,可以在VB的Form设计器中一次性放置多个控件,并设置...

    如何使用pandas解析数据并存储,再利用matplotlib画图------data1.csv

    如何使用pandas解析数据并存储,再利用matplotlib画图------data1.csv

    海龟画图-凯蒂猫-python代码

    海龟画图-凯蒂猫-python代码

    Delphi数组画图动态显示(含源码)

    3. 绘图逻辑:这是核心部分,将数组数据转化为图形。这可能涉及到计算每个数据点的位置,然后调用图形组件的绘图方法,如DrawLine或DrawPoint。 4. 更新机制:这部分代码负责在数据变化时更新图形。可能是通过事件...

    Android学习-画图着色

    在Android平台上,开发一款画图着色应用是一个有趣且实用的项目,尤其对于教育和娱乐领域。本项目的核心是提供一个界面,用户可以在这里绘制、填充颜色,进行素描活动,帮助孩子们提升创造力和手眼协调能力。下面将...

    海龟画图-机器猫-python代码

    海龟画图-机器猫-python代码

    Android 画图程序源码-IT计算机-毕业设计.zip

    在Android平台上,开发...通过学习和分析这个Android画图程序源码,开发者不仅可以掌握基本的Android编程技能,还能深入了解图形绘制、用户交互和文件操作等高级主题,为将来进行更复杂的Android应用开发打下坚实基础。

    python mat 画图-樱花树

    python mat 画图-樱花树

    Android画图的Demo—还可以浏览图片-播放图片

    4. 用户交互:为了使用户能够触发画图、浏览图片和播放图片的操作,需要设置UI元素(如按钮)并为它们添加点击监听器。在监听器的回调中,执行相应的功能代码。 5. 性能优化:考虑到Android设备的多样性和性能差异...

    【国家自然科学基金】-画图-基金支持热词逐年推荐-【万方软件创新助手】-20140801.pdf

    【国家自然科学基金】-画图-基金支持热词逐年推荐-【万方软件创新助手】-20140801.pdf

    android 画图软件源码 markers-for-android

    "markers-for-android"是一款专为Android平台设计的画图软件的源代码库,它提供了丰富的绘图功能,包括压感支持和多指触控画图。这个项目对于想要深入理解Android图形绘制、触摸事件处理以及自定义View的开发者来说...

    Unity 画图-画板-画笔.zip

    最终,用户可以保存这个Texture2D为图片文件。 10. **Undo/Redo功能**:为了提供用户友好的体验,可能需要实现撤销/重做功能。这可以通过记录每次绘制操作前后的状态,然后在用户请求时回滚或前进。 以上是构建...

    Android 画图程序源码.rar

    Android 画图程序源码分析 在Android平台上开发一款画图程序,涉及到许多核心技术和组件。这个"Android 画图程序源码.rar"文件提供了一个实际的案例,可以帮助我们深入理解Android图形系统的工作原理,以及如何创建...

    地震数据剖面画图-Matlab程序

    地震数据剖面画图-Matlab程序

    python画图-22-列表修改数据.ev4.rar

    本教程“python画图-22-列表修改数据”着重讲解如何利用Python对列表进行操作,特别是在数据分析和可视化过程中如何处理列表中的数据。我们将探讨以下几个关键知识点: 1. **列表创建与访问**:在Python中,可以...

    python画图-21-列表删除数据.ev4.rar

    "python画图-21-列表删除数据.ev4.mp4"这个视频教程很可能是通过实例演示了如何在Python中删除列表中的数据并结合可视化来展示这一过程。 首先,Python提供了多种方法来删除列表中的数据: 1. **pop()** 方法:此...

    JavaScript应用实例-n阶贝塞尔曲线画图-2.js

    JavaScript应用实例-n阶贝塞尔曲线画图-2.js

Global site tag (gtag.js) - Google Analytics