bitmap-在内部存储器如何存储图像?

问题描述

在内部存储器如何存储图像?

我想在内部存储器(不是外部存储器)存储 bitmap图像。我使用以下代码但是不能实现。因为当我从DDMS中下载图像,我不能打开图像。如何在内部存储器中存储图像?

public String writeFileToInternalStorage(Context context, Bitmap outputImage) {

        String fileName = Long.toString(System.currentTimeMillis()) + ".png";

        try {
            OutputStreamWriter osw = new OutputStreamWriter(context.openFileOutput(fileName, Context.MODE_PRIVATE));
            osw.write(outputImage.toString());
            Log.i(TAG, "Image stored at: " + fileName);
        } catch (Exception e) {
            Log.w(TAG, e.toString());
            fileName = null;
        } 

        return fileName;
    }

解决方案

outputImage.toString()不是图像,你放在文件中的contact不是二进制数,而是数组。
方法是这样的:

public String writeFileToInternalStorage(Context context, Bitmap outputImage) {
    String fileName = Long.toString(System.currentTimeMillis()) + ".png";

    final FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
    outputImage.compress(CompressFormat.PNG, 90, fos);
}

解决方案二:

问题是你使用 .toString(),而不是把位图压缩到 FileOutputStream:

FileOutputStream out = new FileOutputStream(filename);
outputImage.compress(Bitmap.CompressFormat.PNG, 90, out);

内部存储也可以通过上下文检索。

File cacheDir = context.getCacheDir();
时间: 2024-12-27 21:46:58

bitmap-在内部存储器如何存储图像?的相关文章

Photoshop 润饰图像(十二)存储图像

存储图像   在你作为一个4色出版物来保存 Photoshop 文件之前,你必须将图像转换到 CMYK 颜色模式以便它能够用4色进程墨水正确打印.你可以使用 Mode 命令更改图像的颜色模式. 1.选择 Image > Mode > CMYK.你现在可以为 Adobe PageMaker 和你的出版物要求的正确格式来保存文件.因为PageMaker 使用 Tagged-Image File Format(TIFF)标签图像文件格式来打印进程或    CMYK 颜色,我们将把图片保存为 TIFF

SQL Server存储图像数据的策略与方法

server|策略|数据 目前对于图像数据的管理大都采用表+实体的方法,即图像数据以文件形式存放于指定的计算机目录下,在数据库表中只反映图像数据文件的存储路径.这种管理模式,给数据的维护增加了难度,同时,也给数据的安全带来一定的隐患.因此,要真正做到各类数据在数据库中安全管理,研究和探索直接将图像数据存储在数据库关系表中的方法是非常必要的. 笔者在Visual Basic 6.0开发环境中,采用客户机/服务器的工作方式,针对SQL Server数据库关系表中存储图像数据的问题进行了初步探讨,提出

保存类型-vc++代码,缓存中存储图像像素的数据,如何将其保存成jpg格式的图片

问题描述 vc++代码,缓存中存储图像像素的数据,如何将其保存成jpg格式的图片 是这样的,我通过Matrox采集卡获取到摄像机的模拟图像,通过mil中的函数,可以将其保存成bsq格式的图片(采集卡中自带函数存贮的图像类型byte型,可直接保存成bsq,见下面代码),通过读取存贮内存中的数据,可以得到图片的像素信息了.现在想将buf中的数据保存成jpg格式的,求高手解答. void CCaijiDlg::OnSave() { // TODO: Add your control notificat

image-android中存储图像会创建缩略图

问题描述 android中存储图像会创建缩略图 我使用以下代码在相册中插入图像,但是插入图像时也会创建图像的缩略图,如何阻止缩略图的创建呢? 我在相册中加入图像,当我从相册中选择图像时,返回的是缩略图的路径,这个不是我所要的结果. 插入图像的相关代码: scr The content resolver to use source The stream to use for the image title The name of the image description The descript

SQL Server存储图像数据的机制介绍

本文介绍MIS SQL Server对图像数据的存储机制和存取方法.针对VB开发工具,介绍了一种通过ADO Field 对象的GetChunk 方法和AppendChunk 方法来存取MIS SQL Server中的图像数据的方法. 在一个完善的医院信息MIS中,图像数据的存取是必不可少的,比如X光片.CT像片的保存.一方面,这些图像数据在远程诊疗为准确诊断病情提供了重要的依据,另一方面,也为快速查阅病人资料提供了基本条件.图像数据的存取在其它应用系统如GIS中也有广泛的应用. 1.SQL Se

bitmap-Android里通过C去抓取网络摄像机的Bitmap显示

问题描述 Android里通过C去抓取网络摄像机的Bitmap显示 Android里通过C去抓取网络摄像机的图像,1秒钟返回10帧, 也就是10个Bitmap(分辨率:720*480); Android应用层,用ImageView去setImageBitmap显示,画面会花屏.失真: 用surfaceview去draw的话,也是这样: 我想问:应该怎样去处理这些bitmap才不会让图像失真呢?在此先谢谢各位了. 解决方案 我有碰到过图像失真问题,首先你的弄清楚图片的格式,抓取的如果就是 jpeg

Android性能优化之Bitmap图片优化详解

前言 在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError - 内存溢出),本篇博客,我们将一起探讨Bitmap的性能优化. 为什么Bitmap会导致OOM? 1.每个机型在编译ROM时都设置了一个应用堆内存VM值上限dalvik.vm.heapgrowthlimit,用来限定每个应用可用的最大内存,超出这个最大值将会报OOM.这个阀值,一般根据手机屏幕dpi大小递增,dpi越小的手

用JSP+Servlet实现二进制图像的动态显示

js|servlet|动态|二进制|显示 数据库应用程序,特别是基于WEB的数据库应用程序,通常会涉及到图片信息的显示.我们知道在HTML语言当中为了显示静态的图片资料,可以利用如下标记来实现: <img src=http://www.163design.net/j/e/".image/hello.png" width="100" height="80">,而要显示动态的图片资料,就要采用相关的数据库访问技术来实现.在JSP环境编程中

经典ASP上传图像的方法

最近我接手了一个项目,它将一个保修申请(Warranty Claim)系统搬到网上.项目的重头戏是存储和保修申请有关的图像.我选用的组件包括:  · 一个数据库表来存储图像  · 一个ASP网页来上传图像  · 一个脚本用于解释上传的图像,并把它们存储到表中  · 一个网页用于查看与选定的申请号码对应的图像名称  · 一个网页用于显示实际图像  下面来仔细研究一下应用程序的每个组件. 表 由于我只是想快速验证一下方案的可行性,所以使用的是Microsoft Access,而不是SQL Serve