問題タブ [imgscalr]
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.
java - イメージをスケーリングし、DB (ブロブ) に保存します
imgScalr Image Scaling ライブラリを使い始めたところです。
画像をスケーリングするためのコードを取得できます (これが機能すると確信しています)。
バックストーリー
これは tomcat6 webapp で使用されます。イメージをサーブレットに渡し、「imageStream」という名前の InputStream に読み込みます。
画像のサイズ変更/スケーリングの前に、私が行っていたのは、その InputStream を取得し、次のようにBlob
を使用して DB (Oracle11+) フィールドに保存することでした。PreparedStatement
問題なく保存でき、問題なく取得できたので、これはうまく機能していました。
問題
問題は、変換されている画像をスケーリングしている
BufferedImage
ため、PreparedStatement
.
代わりに、私がやろうとしているのは、 を に変換してBufferedImage
からByteArrayOutputStream
に読み込むInputStream
ことです。以下のコードを参照してください。
エラーの詳細
ステートメントを実行すると、
java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into
. NULL
列に値を挿入しようとしていることは明らかなので、それは問題ではありません。
問題は、変換またはスケーリング中のある時点で、画像の値が失われ、最終的にnull
質問
質問は 2 つの部分に分かれています。
- 私は何を間違っていますか?
- Javaで画像をスケーリングしてDB(Blob)フィールドに保存するより良い方法はありますか?
java - Java ライブラリ imgsclr を使用して RESIZE する画質の問題
imgsclr 4.2 ( http://www.thebuzzmedia.com/imgscar-3-2-released/comment-page-1/#comment -650387 )。
240X320 の画像があり、 50X75 および 120X180 にサイズ変更する必要があります。次のコードを使用して両方を別々に試しました(imgscar 4.2を使用しています)。
2 つの問題があります。#1は、手動で画像のサイズを変更するために使用した他の内部ツールと比較して非常に低品質です. #2。出力の幅が 50 から 56 に、120 から 135 に増加しますが、これは奇妙です。
なぜこれらが起こっているのか分かりますか?私はあなたの助けに感謝します。
java - スケーリング後、画像は縦モードではなく横モードになります
画像があり、imgscar [1] を使用して縮小したいと考えています。
ソース イメージのサイズは 1836 x 3264 (ポートレート モード) で、宛先の解像度は 1336 x 768 です
。失敗は、スケーリング後にイメージがランドスケープ モードであり、ポートレート モードではないことです。スケーリング自体は魅力のように機能します。
私のコード:
ファイルのメタデータは正しいように見えます (方向 = 1)。
私の期待は、縦長の写真を縮小するとき、スケーリングプロセスの後も縦長の写真であるということです。
次のような他のライブラリ/クラスも試しました: https://frickelblog.wordpress.com/2009/06/08/fast-image-scaling-in-java/しかし、効果は同じです。
手伝ってくれませんか?これは私を夢中にさせます!変更する必要があるのは細部だけであると確信しています。
[1] http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/#maven
編集:
元の画像は次のとおりです: http://i.stack.imgur.com/NEc8j.jpg
スケーリングされたバージョン: http://i.stack.imgur.com/SYx6p.jpg
java - Javaでバッファリングされた画像のサイズを動的に変更します
AffineTransform と Scalr.resize を使用して、バッファリングされた画像のサイズを変更してみました
両方のコードを次に示します。
Scalr.resize を使用:
アフィン変換を使用:
変数はクラス内で最初に宣言されています。
別のメソッド内ですべての変数の値を動的に取得しています。
ただし、このコードを実行すると、関数 AffineTransform と Scalr.resize の両方でエラーが発生します。
Scalr.resize:
アフィン変換:
どうすればいいですか?別のメソッドで変数を変更し、別のメソッドで変数にアクセスしているため、これが発生していることを理解しています。ただし、これら 2 つの方法を組み合わせることはできません。これを機能させる方法はありますか?
編集:
リサイズの方法を変えてみました 今やったことはこちら
編集(2) :
正確に何が起こっているのかをより明確に理解するには:
これは scrwidth と scrheight を返すメソッドです
そして、これは bufwidth と bufheight を返す actionlistener です:
そして、aspectRatios は実行内で使用されます。
java - ImgScalr を使用した最適な解像度の画像のサイズ変更
私は ImgScalr API を初めて使用します。画像のサイズをさまざまなビューに変更する必要があります。そのうちの 1 つはモバイル ビューで、2 つ目はサムネイル ビューです。サイズ変更方法を利用しましたが、疑問があります。適切なアスペクト比を維持するために利用可能な複数のオプションから画像のサイズを変更する最適なサイズ変更方法はどれですか (画像がぼやけないように)
私が気づいたことの 1 つは、すべてのサイズ変更メソッドがtargetSize引数を受け取ることです。このフィールドを指定すると、画像の縦横比が影響を受けないようにするにはどうすればよいですか。
サイズが約 2 MB の入力画像の 2 KB のサムネイル ビューを生成する必要があることを考えると、resize メソッドの理想的な引数は何でしょうか。
十分なドキュメントと例がないため、少し混乱しています。
java - カメラで写真を撮り、バイト配列でサーバーに送信する
私は、ユーザーに写真を撮ってもらい、それを保存してサーバーに送信する Andorid アプリケーションに取り組んでいます。今、画像をバイト配列としてサーバーに送信しています。バイト配列を PNG ファイルとしてファイルに保存しようとしてから、そのファイルを開こうとすると、イメージ ビューアーは PNG にエラーがあり、表示できないと不平を言います。PNG ファイルのサイズは 122Kb でした。
Scalr ライブラリを使用して画像のサイズを変更しようとすると、画像ソースを null にできないと表示されます。バイト配列を直接保存すると、PNG が破損します。エラーが発生しないように、ファイルを適切に変換してサーバーに送信するにはどうすればよいですか。これは、私が使用して送信しているカメラのコードです。
画像をディスクに保存するサーバー側のコードは次のとおりです。
Scalr ライブラリを使用しない場合、エラーは発生しませんが、ファイルが破損しています。Scalr エラー ログは次のとおりです。
どんな助けでもいいでしょう。どうもありがとう。:-)
更新されたコード
image-resizing - Scalr のサイズ変更とトリミング
幅と高さが異なるあらゆる種類の配置で画像を表示したいと思います。
私はSclarでトリミングとサイズ変更の方法を使用していますが、2つの問題があります:
- 場合によっては、結果があまり良くないように見えます。コード内の画像が最初にスケーリングされているためだと思います。
- 他の場合には例外が発生します。例えば:
トリミング境界が無効です: x [32]、y [-1]、幅 [64]、高さ [64] はすべて >= 0 でなければなりません
トリミングと画像のサイズをターゲットの幅と高さに変更する最良の方法は何ですか?
これが私の現在の方法です:
java - サムネイル画像のBase64トリミング
解決に苦労している問題がいくつかあります。
私は短いコードスニペットを作りました:
返されたサムネイル/バイトはトリミングされます。下部が削除され、透明な領域だけが表示されます。
私が欲しいのは、画像の一部を削除せずに縮小した画像にすることです。
これの目的は、私の html プロジェクトに base64 を返すことです。