Android版:
public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); try { out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); } public Bitmap getBitmapFromByte(byte[] temp){ if(temp != null){ Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length); return bitmap; }else{ return null; } } public static Bitmap drawableToBitmap(Drawable drawable){ int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0,0,width,height); drawable.draw(canvas); return bitmap; }
Java版
import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class TestImageBinary { static BASE64Encoder encoder = new sun.misc.BASE64Encoder(); static BASE64Decoder decoder = new sun.misc.BASE64Decoder(); public static void main(String[] args) { System.out.println(getImageBinary()); base64StringToImage(getImageBinary()); } static String getImageBinary(){ File f = new File("c://20090709442.jpg"); BufferedImage bi; try { bi = ImageIO.read(f); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(bi, "jpg", baos); byte[] bytes = baos.toByteArray(); return encoder.encodeBuffer(bytes).trim(); } catch (IOException e) { e.printStackTrace(); } return null; } static void base64StringToImage(String base64String){ try { byte[] bytes1 = decoder.decodeBuffer(base64String); ByteArrayInputStream bais = new ByteArrayInputStream(bytes1); BufferedImage bi1 =ImageIO.read(bais); File w2 = new File("c://QQ.bmp");//可以是jpg,png,gif格式 ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动 } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
byte数组则常用于存储二进制数据,如图像的原始像素数据。在网络传输或保存到数据库时,将Bitmap转换为byte数组可以降低存储和传输的成本。 下面是如何在这些类型之间进行转换: 1. Drawable到Bitmap: 要将...
`PICTURE`字段用于存储图片的二进制数据,类型为`BLOB`。 3. **创建表**: 在`onCreate()`方法中,我们创建了一个名为`picture`的表,其中包含两个字段:`_ID`(主键,自动递增)和`PICTURE`(图片数据)。 4. **...
3. **Blob**: 在数据库术语中,“Blob”(Binary Large Object)是指可以存储大量二进制数据的字段类型,非常适合用来存储图片等多媒体数据。 #### 三、实现细节 接下来,我们将基于给定的部分内容,逐步分析如何...
- **预处理**:在构建应用时,将原始图片资源转换为加密格式,这可能涉及到对像素数据进行操作,或者利用特定加密算法对二进制图像数据进行编码。 - **存储**:加密后的图片资源会被存储在应用的assets或res目录下...
SQLite不直接支持二进制大对象(BLOB)类型的图片存储,但可以通过转换将图片数据存储为字节串,然后进行读取和显示。下面将详细解释如何在SQLite中进行图片的存取操作,并将其显示在ListView中。 1. **图片转换为...
在Android开发中,Base64是一种常见的数据编码方式,它将二进制数据转换为可打印的ASCII字符串,便于在网络传输、存储或者显示时使用。本文将深入探讨如何使用Android的Base64库来对图片进行编码和解码。 ### 1. ...
这些资源在编译过程中会被转换为二进制形式,以便于在运行时快速访问。 - **`res/anim`**:存储动画资源,包括逐帧动画和补间动画。通过`context.getResources().getDrawable(int id)`获取。 - **`res/drawable`**...
Base64是一种将二进制数据编码为ASCII字符串的方法,这在数据库存储或通过文本格式传输图片时非常有用。在Android中,可以使用java.util.Base64库来进行编码和解码: ```java byte[] imageBytes = ... // 获取图片...
1. **Base64编码转换**:Base64是一种常见的字符串编码方式,用于将二进制数据转换为可打印的ASCII字符串。在Android中,我们可以使用`android.util.Base64`类的解码方法,将Base64编码的字符串还原为字节数组,然后...
- 文件存储:可以存储Bitmap、Drawable等二进制数据,但读写效率较低。 - DiskLruCache或OkHttp的内部缓存:提供磁盘缓存功能,适合存储大量数据且有大小限制的情况。 - Memory Cache:内存缓存,速度快,但容易...
- **二进制源文件(raw)**:通过`openRawResource(int id)`方法可以读取`res/raw/`目录下的原始文件。 - **颜色(colors)**:`getColor(int id)`方法用于获取`res/values/colors.xml`中的颜色值。 - **图形...
注意,图片需要转换为二进制流。 ```java Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image); byte[] imageBytes; try { ByteArrayOutputStream baos = new ...
与 Android Market 联机;支持谷歌 “ 街景 ” 服务;包装盒内附 数据工具包。 更多信息 https://sites.google.com/a/android.com/opensource/release-features Android Android Android Android 盈利模式 Android ...