問題タブ [system.drawing.imaging]
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.
c# - ASP.NET で使用する System.Drawing の代替品はありますか?
奇妙な GDI+ エラーを数日間追跡した後、 MSDNでこの小さな宝石を見つけました。
System.Drawing 名前空間内のクラスは、Windows または ASP.NET サービス内での使用はサポートされていません。これらのアプリケーション タイプのいずれかからこれらのクラスを使用しようとすると、サービス パフォーマンスの低下やランタイム例外など、予期しない問題が発生する可能性があります。
このコンテキストで「ASP.NET サービス」が「Web アプリケーション」を意味するかどうかはわかりませんが、「サービス パフォーマンスの低下」は、「GDI+ で一般的なエラーが発生しました」エラーと「メモリ不足」エラーのランダムな組み合わせをカバーしているようです。私のアプリがスローしていること - 多くの場合、最初に System.Drawing.Imaging によって実際に作成された JPEG 画像の読み取りと書き込みの断続的で再現性のないエラー。
では、Web アプリで GDI+ が JPEG ファイルを確実に読み書きできない場合、代わりに何を使用すればよいでしょうか?
ユーザーが画像をアップロードし (JPEG が必要、その他の形式があると便利)、それらを確実に再サンプリングし、問題が発生した場合に有用なエラー メッセージを表示できるようにしたいと考えています。何か案は?WPF の System.Media 名前空間は検討する価値がありますか?
編集:ええ、GDI +が「ほとんどの場合」機能することは知っています。失敗した場合、正常に分離または回復することが不可能な方法で失敗するため、これでは十分ではありません。あなたに役立つ GDI+ コードの例には興味がありません。画像処理に使用する代替ライブラリを探しています。
c# - System.Drawing.Bitmap.Paletteの変更
次のコードの変形によって取得したTIFFファイルがメモリにあります。
現在、myImage.Paletteは黒と白の2色のみを返します。これを拡張して、カラースペクトル全体を含めたいと思います。ただし、myImage.Paletteには色を追加する機能はありません。
誰かが私のTIFFに色を付けるのを手伝ってもらえますか?ありがとう。
asp.net - ASP.NET とフォームのアップロードを想定すると、ファイルが画像であることを確認する方法はありますか?
MIME タイプまたはその他の検査方法を使用して、ファイルが画像であるかどうかを確認する方法はありますか? 画像はギャラリーに送られます。必要に応じてサイズを変更し、GDI で処理しようとしているファイルが実際には画像であることをできる限り確認したいと考えています。
.net - GUID を System.Drawing.Imaging.ImageFormat に変換する
画像に関する情報をデータベースに保存します-それらのImageFormat(jpeg、pngなど)も保存します。
これを GUID としてデータベースに保存し、データベースから読み取り、関連する ImageFormat を取得します。
GUID b96b3cae-0728-11d3-9d7b-0000f81ef32e を System.Drawing.Imaging.ImageFormat.Jpeg.Guid にキャストするにはどうすればよいですか?
.net - ColorMatrixに関する説明文書の良い情報源はありますか?
ColorMatrixを使ってみたいのですが、画像をグレースケールに変換する例しか見つかりません。そしてそれでも、それらは説明のない「マジックナンバー」コードのチャンクとして提示される傾向があります。
ColorMatrixの使用方法に関する「チュートリアル」を知っている人はいますか?たとえば、グレースケール画像をカラー画像に変換することに興味があります。ここで、白==透明、黒=単色で、中間に灰色のピクセルがあります。ColorMatrixはそれを行うことができますか?
c# - イメージでアルファ チャネルが使用されているかどうかを判断する
プログラムに画像を取り込んでいるときに、次のことを確認したいと思います。
- 彼らはアルファチャンネルを持っています
- そのアルファチャンネルが使用されている場合
#1は、を使用するだけで十分簡単Image.IsAlphaPixelFormat
です。ただし、 #2については、すべての単一ピクセルをループする以外に、少なくとも1つのピクセルに使用されているアルファチャンネルがあるかどうかを判断できる簡単な方法があります(つまり、 以外の値に設定されています255
)?必要なのはブール値だけです。それから、32 ビットまたは 24 ビットのどちらに保存するかを決定します。
更新: ImageFlags.HasTranslucentが探しているものを提供する必要があることを発見しました-残念ながら、まったく機能しません。たとえば、少なくとも 66 のアルファ チャネル (半透明) を持つピクセル形式の PNG は引き続き報告されますFalse
(使用法: if((img.Flags & ImageFlags.HasTranslucent) == 4) ...;
)。アルファ値が 0 より大きく 255 より小さい .bmp を含むすべてのタイプの画像でテストしましたが、それでもFalse
. これを使ったことがあり、GDI+ でも動作するかどうか知っている人はいますか?
c# - 正しい BytesArray を Image の MemoryStream に渡す
バイト配列から Image を作成する場合、正しいバイト配列を MemoryStream に渡していることを確認する方法があります。
可能であれば、画像の有効な byteArray である byteArray を修正するにはどうすればよいですか?
c# - 大きな画像の中央部分として System.Drawing.Image を使用しますか?
新しい大きな画像の中央部分として使用したい System.Drawing.Image があります。(常に)大きい画像の寸法が与えられており、その画像をすべて白にして、その中心を最初の画像でオーバーレイするという考えです。GDI+ を使用してこれを行う方法はありますか? TextureBrush と Graphic クラスの組み合わせでしょうか。私は提案を受け入れます。ありがとう!
c# - System.Drawing.Image のファイル拡張子
ファイルに保存する必要があるメソッドを書いてSystem.Drawing.Image
います。作成元の元のファイルを知らなくても、Image
ファイル拡張子を決定する方法はありますか?
私が思いついた最善の解決策は、Image.RawFormat の値で Switch/Case ステートメントを使用することです。
Image
元の形式で保存しても問題ありませんか? PNGから生成されたものはImage
、JPEGから生成されたものとは異なりますか? それとも、オブジェクトに格納されているデータはImage
完全に一般的なものですか?
c# - c#でsystem.drawingを使用してテキストをjpgに描画し、再保存する方法
jpg 画像にテキストを書き込み、.NET で System.Drawing を使用して再保存する方法の良い例はありますか?