Android在图像上应用自定义贴纸

时间:2014-12-11 09:47:13

标签: android image-processing libraries

我正在尝试一个图像编辑器库,它允许我在图像上贴一个贴纸。我找到了两个库,一个是Aviary,但是我不能把自己的贴纸放进去,然后我试过Android-image-edit但是很简单,它不是一个库,它是一个应用程序。 有谁知道一些好的图书馆让我做我想做的事情? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我不懂图书馆,但如果我理解你,你想在图像上添加一个Drawable吗?

你可以自己做:(未经测试!)

public void putSticker(File file, Bitmap overlay) {
    //Load bitmap from file:
    Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());       
    bitmap = bitmap.copy(Bitmap.Config.RGB_565, true);

    //Draw overlay:
    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
    canvas.drawBitmap(overlay, 0, 0, paint);

    //Save to file:
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 40, bos);
    byte[] bitmapdata = bos.toByteArray();
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(file);
        fos.write(bitmapdata);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
} 

也许有更好的加载和保存方式。但无论如何,绘画是你问题的有趣部分。

有关更多drawBitmap()的可能性,请参阅http://developer.android.com/reference/android/graphics/Canvas.html。 (偏移,缩放,......)

答案 1 :(得分:0)

我不知道,如果有人还在寻找这个,但是这个库可以让你以各种可能的方式添加贴纸。

https://github.com/wuapnjie/StickerView