問題タブ [bitmapregiondecoder]
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.
android - マトリックスもある場合に BitmapRegionDecoder を使用する
BitmapRegionDecoder を使用して部分領域をデコードすると、一般的な使用では問題なく動作します。
ただし、 BitmapRegionDecoder を使用してビットマップの作成を置き換える必要があるコードに行き着きましたが、ここに問題があります。新しいビットマップの作成では、長方形とマトリックスの両方が使用されましたが、確かに行列が変換とスケーリングにのみ使用されたこと。
このようなコードを BitmapRegionDecoder で使用されるように変換するにはどうすればよいですか?
たとえば、これを変換するにはどうすればよいですか:
BitmapRegionDecoder.decodeRegion を使用するものに?
Matrix.mapRect を使用しようとしましたが、元のコードと比較して出力ビットマップで奇妙な結果が得られたため、意味がないと思います。
java - Bitmapfactory で画像の特定の領域をデコードしますか?
GeoTiff/PNG
コードで全体を処理するには大きすぎるファイルを使用しています。
bitmapfactory でファイルの特定の領域 (たとえば、2 つの x、y 座標で指定) をデコードする可能性はありますか? 似たようなものは見つかりませんでしたhttp://developer.android.com/reference/android/graphics/BitmapFactory.html
(Android の開発者リファレンス)。
ありがとう!
kcoppock のヒントで、次の解決策を設定しました。
なぜ代わりにrect
初期化する必要があるのか 疑問に思っていますが...Rect(left, bottom, right, top)
Rect(left, top, right, bottom)
呼び出しの例:
関数:
android - BitmapRegionDecode.decodeRegion、ビットマップからタイルを作成しようとしたときの skia エラー
こんにちは、skia というエラーが表示されます: --- BitmapRegionDeocde.decodeRegion で 2 番目の領域をデコードしようとすると、decoder->decodeRegion が false を返しました。最初の領域のビットマップを取得できましたが、2 番目の領域で null を取得した場合。
このエラーを発生させずにすべてのリージョンのビットマップを取得するにはどうすればよいですか?
ここに私のコードのサンプルがあります:
android - BitmapRegionDecoder で読み込まれた画像はシミュレーターでは問題ありませんが、デバイスでは大きすぎます
シンプルな単語ゲーム アプリで、次のコードを使用して、 PNG イメージ ストライプから 26 文字のタイル イメージを読み込みます。
これは Android エミュレーターでうまく機能します。
しかし、実際の Moto G デバイスでは、文字が大きすぎます (おそらく 1.5 倍?印刷するsContext.getResources().getDisplayMetrics().density
と、何らかの理由で 2.0 になります):
同時に、黄色の四角いタイルの背景が正しく表示されます。
すべて ( big_tile.pngとbig_english.pngとgame_board.png ) は PNG 画像です。なぜ違いがあるのでしょうか?
なぜそれが起こるのか、これを修正する方法を教えてください。
inDensity
または他のBitmapFactory.Optionsを使用する必要がありますか?
それとも私のgetResources().openRawResource()
電話のせいですか - しかし、代わりに何を使うべきですか?
android - BitmapRegionDecoder を使用すると透明色の代わりにゴミが描画される
簡単な作業です。透明な部分を持つ全体像があります。BitmapRegionDecoderメソッドdecodeRegionを使用して、長方形の部分をビットマップとしてデコードしたいと考えています。画像の不透明部分はうまくデコードされますが、透明部分の代わりにがらくたが表示されます。おなじみの何かに直面した人はいますか?私が使用するコード:
android - メモリ不足の例外が発生しないのはなぜですか?
drawable フォルダーに高解像度の画像 (2588*1603) があります。以下のコード (1) を使用して imageView に設定すると、OOM 例外が発生せず、イメージが期待どおりに割り当てられます。
rect サイズは画像サイズとまったく同じであることに注意してください。
しかし、たとえば 2 または 3 のような他の方法を使用すると、OOM が発生します。
1 と 2,3 はどう違いますか?
(OOMの解決方法は知っていますが、違いを知りたいだけです)
android - BitmapRegionDecoder - 新しいイメージを一緒に構築するための逆の使用法
品質を落とさないクロップ機能を作りたい。したがって、画像を低品質で読み込み、画像の一部を で再読み込みして、BitmapRegionDecoder
タイルを適切な解像度で表示します。これまでのところ、表示はうまくいっています。
ここで、損失の少ないトリミング機能を提供したいと考えています。つまり、ユーザーは、画像のタイルまたは低品質の「プレビュー」に基づいて、画像のどの領域をトリミングするかを選択できます。これに基づいて、ユーザーが実際のビットマップ座標で切り取る必要のある領域を計算できます。
ビットマップが 20000x20000 で、メイン画像の中心を表すサイズ 15000x15000 の領域をトリミングしたいとしましょう。どうすればそれを行うことができますか?
完全なビットマップが読み込まれている場合にそれを行う方法は知っていますが、それなしで行う方法はわかりません。
メモリにやさしい方法でタイルからビットマップを作成するにはどうすればよいですか?