0

今、ビデオファイルからフレーム画像を取得しようとしていますが、その方法を知っています(ffmpegまたはgetFrameAtTime関数を使用)

そのため、プログラムでフレームを bmp 構造として取得できますが、これをpngまたはとして保存するとjpeg

ビデオの品質は良好ですが、これらの品質は良くありません

だから私はこのbmpを圧縮せずに保存したい

関数はこれで機能すると聞いてcopyPixelsToBufferいますが、できませんでした... T_T ...

誰かが私にこれを使用する方法を説明できますか?? //私の録音サイズは (1280, 720)

もっと大きなサイズでビデオを録画する必要がありますか? または、フレームをビットマップとしてSDカードに保存する必要がありますか???

圧縮せずに???

//私の推測では、圧縮用です。圧縮は品質との一種のトレードオフです

今、私はこの機能を使用してpngまたはjpegを作成しました Bitmap.compress(CompressFormat.PNG, 100, fos)

4

1 に答える 1

2

ウィキペディアから: http://en.wikipedia.org/wiki/Portable_Network_Graphics

Portable Network Graphics (PNG /ˈpɪŋ/[2] ping) は、ロスレス データ圧縮を採用したビットマップ イメージ形式です。

あなたが示すコードで行っているPNG圧縮は、品質を失うことはありません。PNG はロスレスです。

発生する可能性が最も高いのは、ビットマップ オブジェクトをメモリに取得するための実装で、どこかのピクセルが失われていることです。

アプリケーションの ImageView 全画面表示でビットマップ オブジェクトを表示し、保存された PNG と比較することを (比較とテストの目的で) お勧めします。どの変換が実際に品質を落としているかを確認するだけです。

于 2012-08-15T10:12:16.990 に答える