如何将捕获的图像转换为GIF并保存到android中的SD卡

时间:2014-03-28 10:13:05

标签: android android-camera android-image android-camera-intent

我正在使用自定义相机,我想在连拍模式下拍摄3张图像并将其作为动画保存到SD卡中。其扩展名为.gif,并将其中的3个捕获帧组合在一起。 还想将图像捕获时间保存在数据库中。

2 个答案:

答案 0 :(得分:1)

你能使用ImageMagick吗?它是免费的here。它有一组命令行工具以及Perl,Java,PHP,C ++,Python,Ruby等的绑定。

如果是这样,只需执行此操作即可将当前文件夹中的所有jpeg转换为动画GIF:

convert -delay 20 -loop 0  *.jpg  animated.gif

ImageMagick适用于Android。

enter image description here

答案 1 :(得分:0)

用于数据库工作

      ImageHandling ih = null;
       ih = new ImageHandling(this);
      ih.getBitmapAsByteArray(R.drawable.imgename); 
      insertData(ih.getBitmapAsByteArray(R.drawable.imgename));
      private void insertData( byte[] bitmapData){
       values.put("imagename", bitmapData);
        }

然后最后

      public class ImageHandling {

Resources res;
Activity activity;
public ImageHandling(Activity a) {
    activity = a;
    res = a.getResources();
}
private Bitmap getBitmapFromResource(int resourceId){

    Bitmap bitmap = null;
    bitmap = BitmapFactory.decodeResource(res, resourceId);
    return bitmap;
}   

public byte[] getBitmapAsByteArray(int resourceId){
    ByteArrayOutputStream outputStream = null;
    byte[] bitmapByteArray = null;
    try {
        outputStream = new ByteArrayOutputStream();
        Bitmap bitmap = getBitmapFromResource(resourceId);
        bitmap.compress(CompressFormat.PNG, 0, outputStream);
        bitmapByteArray =  outputStream.toByteArray();
    } catch (Exception e) {
        e.printStackTrace();
    }finally{
        if(outputStream != null){
            try {
                outputStream.flush();
                outputStream.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }

    return bitmapByteArray;
}}