1

私は写真をキャプチャしようとしています。その後、ユーザーがいくつかの効果を追加したり、描画したり、他のアセットを画像にドラッグしたり、テキストを追加したりできるようにします。スナップチャットカメラのように。

私はCamera 2 API sampleに従っています。コードの大部分は Camera2BasicFragment.javaにあります。

画像のキャプチャとプレビューを達成しましたが、例では画像を に設定しましたがTextureView、画像を操作し続ける方法がわかりません。

TextureViewaまたは aCanvasまたは aを使用する必要があるかどうかはわかりませんSurfaceView

私が望む最終的な画像結果の例:

例

前もって感謝します。

4

1 に答える 1

1

写真をキャプチャし、画像を保存します。次に、と を使用しImageViewて、あらゆる種類の効果を適用できます。ここで、画像をグレースケールにするための小さなサンプルを示しますBitmapColorMatrix

    public void toGrayscale() {
        ColorMatrix matrix = new ColorMatrix();
        matrix.setSaturation(0);

        ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
        imageView.setColorFilter(filter);
    }

効果を適用した後、次のようにドローアブルを画像ファイルに保存します。

public void saveDrawable(ImageView imageView) throws FileNotFoundException {
    Bitmap bitmap = getBitmapFromImageView(imageView);
    OutputStream fOut = null;
    try {
        fOut = new FileOutputStream(absolutePath);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 95, fOut);
    } finally {
        if (fOut != null) {
            try {
                fOut.close();
            } catch (IOException e) {
                //report error
            }
        }

    }
}

@NonNull
private Bitmap getBitmapFromImageView(ImageView imageView) {
    Drawable drawable = imageView.getDrawable();
    Rect bounds = drawable.getBounds();
    Bitmap bitmap = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    drawable.draw(canvas);
    return bitmap;
}

あなたを助ける良いライブラリがありますhttps://github.com/chrisbanes/PhotoView


指でこの質問を描くには、Androidで指と一緒にimageviewに線を引く方法が役立ちます

その助けを願っています!!

于 2016-02-24T15:57:09.987 に答える