android保存bitmap到指定路径

不难,但用的时候有时候突然会想不起来。。记录一下吧

先加权限

1 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 1 private void saveCroppedImage(Bitmap bmp) {
 2         File file = new File("/sdcard/myFolder");
 3         if (!file.exists())
 4             file.mkdir();
 5
 6         file = new File("/sdcard/temp.jpg".trim());
 7         String fileName = file.getName();
 8         String mName = fileName.substring(0, fileName.lastIndexOf("."));
 9         String sName = fileName.substring(fileName.lastIndexOf("."));
10
11         // /sdcard/myFolder/temp_cropped.jpg
12         String newFilePath = "/sdcard/myFolder" + "/" + mName + "_cropped" + sName;
13         file = new File(newFilePath);
14         try {
15             file.createNewFile();
16             FileOutputStream fos = new FileOutputStream(file);
17             bmp.compress(CompressFormat.JPEG, 50, fos);
18             fos.flush();
19             fos.close();
20         } catch (IOException e) {
21             // TODO Auto-generated catch block
22             e.printStackTrace();
23         }
24
25     }

这里比较重要的方法就是

bmp.compress(CompressFormat.JPEG, 50, fos);

文档如下:

boolean android.graphics.Bitmap.compress(CompressFormat format, int quality, OutputStream stream)

Write a compressed version of the bitmap to the specified outputstream. If this returns true, the bitmap can be reconstructed by passing a corresponding inputstream to BitmapFactory.decodeStream(). Note: not all Formats support all bitmap configs directly, so it is possible that the returned bitmap from BitmapFactory could be in a different bitdepth, and/or may have lost per-pixel alpha (e.g. JPEG only supports opaque pixels).

Parameters:

format The format of the compressed image

quality Hint to the compressor, 0-100. 0 meaning compress for small size, 100 meaning compress for max quality. Some formats, like PNG which is lossless, will ignore the quality setting

stream The outputstream to write the compressed data.

Returns:

true if successfully compressed to the specified stream.

第一个参数有三种,源码如下

 1 /**
 2      * Specifies the known formats a bitmap can be compressed into
 3      */
 4     public enum CompressFormat {
 5         JPEG    (0),
 6         PNG     (1),
 7         WEBP    (2);
 8
 9         CompressFormat(int nativeInt) {
10             this.nativeInt = nativeInt;
11         }
12         final int nativeInt;
13     }

因为转换的原始bitmap后缀有不同,比如我用的jpg文件,保存下来也是jpg文件。但用的是CompressFormat.JPEG做参数。

这个参数应该和原始文件类型有关,这是个知识点,日后研究研究,写个根据类型自动选择参数的方法。

附上几个链接:

android bitmap compress(图片压缩)

Android中文API(136) —— Bitmap

时间: 2024-11-10 04:51:10

android保存bitmap到指定路径的相关文章

Android学习之保存Bitmap到指定文件夹

/** * 保存图片到指定文件夹 * * @param bmp * @param filename * @return */ private boolean saveBitmapTofile(Bitmap bmp, String filename) { if (bmp == null || filename == null) return false; CompressFormat format = Bitmap.CompressFormat.JPEG; int quality = 100; O

android 保存bitmap到SD卡

public void saveMyBitmap(String bitName,Bitmap mBitmap){  File f = new File("/sdcard/" + bitName + ".png");  try {   f.createNewFile();  } catch (IOException e) {   // TODO Auto-generated catch block   DebugMessage.put("在保存图片时出错:&

Android—将Bitmap图片保存到SD卡目录下或者指定目录

直接上代码就不废话啦 一:保存到SD卡下 [java] view plain copy File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); try { out = new FileOutputStream(file); btImage.compress(Bitmap.CompressFormat.JPEG, 90, out); System

Winform 根据Point截图并保存到指定路径

1 /// <summary> 2 /// 获取图片流 3 /// </summary> 4 /// <param name="ImageXY">图片屏幕起始点</param> 5 /// <param name="ImageSize">图片大小</param> 6 /// <returns></returns> 7 public string CutImage(Poin

nodejs 剪切图像在上传,并保存到指定路径下(./public/img/&#39; + req.session.token + &#39;.jpg‘)

前jQuery端接收数据 function upAvatar(img){ console.log(img); // data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMD…/7vA+eq/xZAlzs/wBYlP8AtlpRRXcc9h++B/8AVyJRs30UVRkM2e9M8s+tFFSBE6UUUUGp/9k= $.ajax({ url:'/user/upload', type:'PUT',

C#递归读取指定路径下的所有文件并保存至TreeView

1.代码如下: /// <summary> /// 递归读取指定路径下的所有文件信息 /// </summary> /// <param name="path"></param> /// <param name="node"></param> private void DIGuiGetFile(string path, TreeNode node) { if (!Directory.Exists

C#项目打开/保存文件夹/指定类型文件,获取路径(转)

C#项目打开/保存文件夹/指定类型文件,获取路径 转:http://q1q2q363.xiaoxiang.blog.163.com/blog/static/1106963682011722424325/ 1.打开文件路径:                  OpenFileDialog ofd = new OpenFileDialog();                //new一个方法            ofd.Filter = "(*.et;*.xls;*.xlsx)|*.et;*.x

Android入门——Bitmap和BitmapFactory

我们都知道一个App的成败,首先取决于是否具有优秀的UI,而除了交互功能之外还需要丰富的图片背景和动画去支撑.在开发中我们应用到的图片不仅仅包括.png..gif..9.png..jpg和各种Drawable系对象,还包括位图Bitmap,而且图片的处理也经常是影响着一个程序的高效性和健壮性. 一.Bitmap概述 Bitmap代表一张位图,扩展名可以是.bmp或者.dib.位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2.4.8.16.24

MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格

测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 %1)strfind(a,b):即找a中是否有b,如果a中有b,则输出b的位置序号.没有输出空数组 %2)isempty(a):判断数组是否为空 %3)strrep(a,b,c):就是把a中所有出现的b换为c %4)movefile(a,b):a移动为b,如C:\test1.jpg移动为C\test2