問題タブ [bitmapfactory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
176 参照

android - Android 2.1SDK - ビットマップのサイズ変更

次のコードを使用して、ビットマップをダウンロードしてサイズ変更します。

私の onCreate() 関数では、前の関数を使用する ImageViews を動的に作成します

ビットマップのサイズを変更しようとしなければエラーは発生しませんが、サイズを変更しようとすると -> 強制的に閉じます

0 投票する
1 に答える
768 参照

android - アンドロイド紛らわしいクラッシュ

メッセージで最大40% の空き時間になっているのに、メッセージが表示されVM won't let us allocate 171600 bytesてクラッシュするのはなぜですか?java.lang.OutOfMemoryError: bitmap size exceeds VM budgetGC

0 投票する
1 に答える
1416 参照

android - ビットマップ ( BitmapFactory.decodeFile の出力) を元の画像ファイルよりも大きいファイルに保存するのはなぜですか?

opencv (android-jni) を使用して Bitmapfile のサイズを変更し、出力ビットマップを /mnt/sdcard/org.jpg という名前のファイルに保存します。

次に使用する

ビットマップを取得し、このresultBitmapをファイル/mnt/sdcard/result.jpgに再保存します

org.jpg のサイズは 100k で、result.jpg のサイズは約 300k です。

なぜ?

私のサイズ変更方法は、次のように jni で opencv を使用します。

そして私のメインは

私のsaveBitmapToFileは

0 投票する
1 に答える
716 参照

android - ビットマップに渡されたイメージビューをズームする方法

こんにちは、Android アプリケーションを開発しています。ビットマップに渡されたイメージビューをズームする方法を教えてください。

サンプルコード:

0 投票する
1 に答える
746 参照

android - android BitmapFactory.decodeByteArray() 画像タイプ?


BitmapFactory.decodeByteArray()ピクセルタイプが返す ものを誰か知っていますか?

基本的に、カメラ プレビュー コールバックでこのスニペットを使用しています。

Androidで使用できる優れたビットマップを取得します。しかし、OpenCV で使用したい場合は機能しません。OpenCV には ARGB_8888 タイプが必要なので、decodeByteArray()関数から別のタイプを取得していると思います。

ありがとう、
ヴラド

0 投票する
3 に答える
10692 参照

android - Android - PNG ファイルを使用してキャンバスに背景を設定する

アプリで .PNG ファイルを背景として設定しようとしていますCanvas。480 x 800 の画像を作成し、次の方法を使用しました。

エミュレーター (WVGA800) を起動しましたが、画像がデバイスの画面より大きく見えます。

この画像のサイズを変更するにはどうすればよいですか、またはこの画像を適切に一致させるにはどのような方法を使用すればよいですか?

次に、このような背景をさまざまな画面解像度のデバイスで共通にする方法はありますか?

前もって感謝します。

0 投票する
2 に答える
6602 参照

java - キャンバス Java からビットマップを作成する

解決

@ChandraSekhar の提案のおかげで、Immutable Bitmap を canvas コンストラクターに渡していたことが問題でした。解決策は、BitmapFactory.decodeFile(); を使用するときにそのコピーを作成することです。

したがって、 bitmapFactory.decodeFile() を使用しているビットマップがあり、これは機能します。ビットマップを作成できたら、キャンバスを作成する必要があります。ここで奇妙なことが起こります。

ここまでが流れです。画像をキャプチャし、それを functionA に渡してサイズを調整し、保存してファイル パスを返します。(Phonegap Cordova を使用しています)

次に、その URL を Java に戻し、以前に保存した画像を使用して functionB で操作します。

問題のコード:

エラーは発生しません。ハングするだけです。これがズボンのキックです-別の関数を実行すると、最初に functionB と言って、一方は機能しますが、もう一方は機能しません。

最初の FileOutputStream をフラッシュして閉じる必要があるのではないかと考えましたが、効果はないようです。すべての要素、ビットマップ、キャンバス、およびファイル出力ストリームに対して異なる変数名を試しました。

ここに完全な機能の例があります... 注:phonegap / cordovaを使用しているため、文字列を返しています

私が言ったように、これは最初の画像で機能しますが、この画像を再度開こうとすると、返されたファイルパスに基づいて、キャンバスの作成行でチャンクアウトします。

編集: 私が使用している画像パスは次のようになります: /mtn/sdcard/myApp/tmp.jpg 考え?

0 投票する
2 に答える
1924 参照

android - imageviewの画像のサイズを変更する必要があります

8 mpの画像がありますが、ファイルが大きすぎるため、ImageViewに表示できません。BitmapFactoryを使用してサイズを変更し、この新しい画像をXMLのImageViewのソースとして渡すにはどうすればよいですか?

私のXML:

私の活動:

0 投票する
3 に答える
8816 参照

android - BitmapFactory.decodeByteArray()によって生成された画像のサイズを変更します

オーディオプレーヤーを作成しています。プレーヤーに曲のカバーを表示したいのですが、小さい画像で動作しますが、mp3ファイルの画像が大きい場合はレイアウトビューから外れます。以下のコードを使用して、画像のサイズを300x300に変更しています。

しかし、それでも大きく表示され、レイアウトから外れます。

このコードの何が問題になっていますか?

0 投票する
1 に答える
792 参照

android - android - bitmapfactory oom を避けるために、Canvas の代わりに GLSurfaceView を使用する必要がありますか?

私のアプリは、建物の平面図を読み込んでから、平面図にオブジェクト (家具) を描画する必要があります。フロアプラン イメージは 2500 x 1500 240Kb PNG ですが、ビットマップを作成するために 12Mb 以上のヒープを必要とするため、ビットマップ ファクトリーがほとんどのデバイスをクラッシュさせ、OutOfMemory エラーが発生します。ここで明確にさせてください: これは、私が知る限り、メモリ リークではなく、最初のイメージの作成中に最初にクラッシュするため、 bitmap.recycle() は何もしません。画像を認識できないほどのサンプル サイズを使用しない限り、inSampleSize を使用して画像を読み取っても役に立ちません。この全体の状況はクレイジーです。Droid 3、HTC Inspire、および 2 つの 2.3 エミュレーターでテストしています。HTC は、128Mb の (ばかげた) ヒープ サイズを持つエミュレーターと同様に、マップをロードします。このアプリの展開は、さまざまな Android ユーザーに使用されるため、

これが私の現在のコードで、使用できない画像が表示されます(別のSO投稿から、申し訳ありませんがリンクを失いました):

GLSurfaceView はここで私の問題を解決しますか? 1) フロアプラン イメージを読み込む、2) オブジェクトとテキスト ラベルをプログラムで描画できるようにする、3) ズームをサポートし、フロアプランの座標に基づいてタッチに反応するために必要です。これが答えである場合、このような基本的な 2D 作業のための優れたチュートリアルを推奨できる人はいますか?