問題タブ [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.
android - Android: MSSQL から画像を取得する
私はAndroidが初めてで、MSSQLから画像を取得して背景として設定しようとしています。
私も使用しようとしました:
ただし、何も機能しません。私の手順は正しく機能し、正しい数のボタンを作成しますが、画像はありません。
イメージファイルをイメージとしてMSSQLに保存し、varbinary(MAX)を試しました
前もって感謝します
android - メモリ不足例外なしで「onPictureTaken」から画像を回転するにはどうすればよいですか?
私はそこに多くの投稿を読みますか?しかし、私は正しい答えを見つけられません。
私はこれをやろうとします:
BitmapFactory を使わずに画像を回転させる方法はありますか? 画質を落とさずに画像を回転させたい!
android - Android で copyPixelsFromBuffer を使用しようとすると、「ピクセルに対して十分な大きさのバッファがありません」
次のコード スニピットで、「Caused by: java.lang.RuntimeException: Buffer not large for Pixels」エラーが発生します。
ビットマップの幅と高さに応じて割り当てられるため、バッファーは十分に大きいと思いました。問題の原因は何ですか?
android - Android:BitmapFactory.decodeFileで開かれたファイルの向きが間違っています
タイトルと同じように単純ですが、BitmapFactory.decodeFileで開かれたファイルは、ImageViewに表示されるときに間違った方向になります。カメラからキャプチャされてtmpファイルに保存された画像。デバイスにdata.getData()nullを返すバグがある場合は、少なくともファイルへの参照があります。
これは、カメラアクティビティを開始し、画像ファイルをキャプチャするだけです。
そして、このファイルは画像のサイズを変更します
ExifOrientationを取得しようとしましたが、ロードしたときにファイル自体が正しい方向に表示されるため、常に0になります。ファイルは間違った方向で表示されます。
よろしく
android - 「bmp」をsdカードにbmpファイルとして保存する方法は?
今、ビデオファイルからフレーム画像を取得しようとしていますが、その方法を知っています(ffmpeg
またはgetFrameAtTime
関数を使用)
そのため、プログラムでフレームを bmp 構造として取得できますが、これをpng
またはとして保存するとjpeg
、
ビデオの品質は良好ですが、これらの品質は良くありません
だから私はこのbmpを圧縮せずに保存したい
関数はこれで機能すると聞いてcopyPixelsToBuffer
いますが、できませんでした... T_T ...
誰かが私にこれを使用する方法を説明できますか?? //私の録音サイズは (1280, 720)
もっと大きなサイズでビデオを録画する必要がありますか? または、フレームをビットマップとしてSDカードに保存する必要がありますか???
圧縮せずに???
//私の推測では、圧縮用です。圧縮は品質との一種のトレードオフです
今、私はこの機能を使用してpngまたはjpegを作成しました
Bitmap.compress(CompressFormat.PNG, 100, fos)
java - BitmapFactory.decodeStreamの中断
BitmapFactory.decodeStream
次のような接続ストリームで呼び出すワーカースレッドがあると仮定します。
BitmapFactory
次に、割り当てられたメモリを再利用するために、このスレッドをすぐに終了する必要があります。UIスレッドにメモリが必要なため、終了するのを待つことはできません。例は単純化されているので、なぜこのようにする必要があるのかについては詳しく説明しません。別のアプローチではなく、このアプローチの解決策を探しています。
スレッドは他のことも行っているので、残酷にスレッドを強制終了することはできません。また、いくつかのものがリークする可能性があります。唯一のクリーンな方法は、を使用することworkerThread.interrupt()
です。
残念ながら、BitmapFactoryはスレッドが中断されたかどうかを気にせず、作業を続行します。Thread.currentThread().isInterrupted()
明らかに、存在した直後にチェックしていますが、それだけでは不十分です。非常に遅いインターネット接続では、画像の読み込みに数年かかる場合があり、アプリケーションがフリーズします(UIスレッドが待機していることを忘れないでください)。
だから問題は-スレッドが中断されたときにどうやってBitmapFactory
停止させるのですか?InputStream
私の考えは、カスタムでラップし、FilterInputStream
すべての関数を上書きし(実際には多くはありません)、それぞれでスレッドが中断されているかどうかを確認することです。はいの場合、いくつか投げますIOException
。この方法BitmapFactory
は、からデータを取得しようとするとすぐに停止し、InputStream
十分なはずです。より良い方法はありますか?close()
いいえの場合、スローする前にストリームを呼び出す必要がありIOException
ますか?
そして少し注意してください:追加のメモリを待っているUIスレッドは素晴らしいを表示しているProgressBar
ので、ワーカースレッドが終了するのに1〜2秒かかる場合でも問題はありません。
ありがとう!
android - BitmapFactory.decodeStream の問題
ほぼ 150 の画像フレームを使用して、フレームごとのアニメーションでアプリケーションを作成しています。アニメーションは、Handler を使用して Image ビューの背景イメージを変更することで再生されます。ハンドラー内で、フォルダー /mnt/sdcard/Android/data/ApplicationPackage から画像を取得し、次の方法で画像ビューの背景として動的に変更しています。
一部の画像ではビットマップの作成に時間がかかるため、ファイル入力ストリームのデコードに問題が発生します。画像ファイルのサイズは各画像でほぼ 40 KB 未満ですが、同じサイズのファイルの外部ディレクトリから画像をデコードするのにかかる時間は異なります。ファイルサイズと読み込みをサンプリングしようとしましたが、画像の鮮明さに直接影響します. 画像を外部フォルダからビットマップにロードし、すべての画像を同じ期間でロードするより良い方法を教えてください。
ありがとう、ティム
android - TouchImageView で bitmapfactory を使用すると OutOfMemoryError が発生する
TouchImageView(https://github.com/MikeOrtiz/TouchImageView) を使用してズーム可能な画像を表示するフラグメントを作成しようとしています
フラグメントには、画像を変更するためのスピナーもあります。問題は、最初の画像が正常に読み込まれることですが、スクローラーを使用して画像を変更すると、OutOfMemoryError が発生し、プログラムがクラッシュします。これが私のコードです
「recylce()」は最初の画像を削除して、メモリ内の新しい画像に場所を与えるべきではありませんか? MB 単位の画像サイズは 1.4、1.5、1.5、1.3 です。
java - Bitmap.createBitmap()がソースビットマップとは異なる可変ビットマップを返すのはなぜですか?
文書化Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)
方法によると:
オプションの行列によって変換された、ソースビットマップのサブセットから不変のビットマップを返します。新しいビットマップは、ソースと同じオブジェクトであるか、コピーが作成されている可能性があります。元のビットマップと同じ密度で初期化されます。ソースビットマップが不変であり、要求されたサブセットがソースビットマップ自体と同じである場合、ソースビットマップが返され、新しいビットマップは作成されません。
既存のビットマップに方向を適用するメソッドがあります。
私はここからそれを呼んでいます:
tmpPhoto
不変であることを確認しましたgetOrientedPhoto()
が、tmpPhotoのコピーである可変画像を返します。Bitmap.createBitmap()
新しいビットマップオブジェクトを作成せずに使用する方法と、私のコードの何が問題になっているのかを知っている人はいますか?