問題タブ [gdi]

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 投票する
4 に答える
7724 参照

pdf - プリンターエミュレーター、PDFライターなど

作業中の製品の「印刷」および「印刷プレビュー」機能に間もなく取り組んでいます。私はプリンターを所有していませんし、購入するつもりもありません。印刷コードのテストに使用できる無料のソフトウェアを探しています。

プリンターをエミュレートするために使用できる最高の無料オプションは何ですか?私はWindowsでGDI+を使用していますが、PDFライターなどのプラットフォームに依存しないオプションは大歓迎です。

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

c# - リサイズ 画質低下

Web サイトにアップロードされた画像を縮小およびトリミングするための簡単な PhotoEditor ヘルパー クラスを作成しました。すべてが機能していますが、画像をファイルに保存すると、満足のいく品質が得られません。以下で調整できるさまざまな設定を読みましたが、サイズ変更のセットアップは同じです。トリミングは同じです。

ご覧のとおり、補間、スムージングなどの推奨設定を使用しています。また、品質 100 で jpeg を保存しています。

結果として得られる画像には、元のサイズのわずか 75% にサイズ変更しても、顕著なぼやけとアーティファクトがあります。いろいろ調べましたが、これがおすすめです。サイズを変更する簡単な方法を見つけたので、試してみることにしました。

驚くべきことに、メモリ フットプリントが 30% ほど大きくなりますが、これによりはるかに優れた画像が生成されます。

私の質問は、違いは何ですか、サイズ変更ルーチンで欠落している設定は、醜い結果の原因となる可能性があるということです。サイズ変更ルーチンを取得して、単純なサイズ変更とまったく同じ結果を生成したいと考えています。

あなたの助けに感謝します。これは、画像処理への私の最初の進出です。

編集

シンプルなリサイズ (82KB)

シンプル http://img189.imageshack.us/img189/2137/simpleresize.jpg

マイリサイズ (55KB)

複雑 http://img12.imageshack.us/img12/4023/complexresize.jpg

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

c++ - gdi+ ビットマップのような構造体を HDC に変換する方法は?

ビットマップのような構造体を HDC に変換する方法は?

現在、c++、gdi で画像処理プログラムを書いています。

HDCを手に入れたら。次のコードで、gdi の HDC に好きなものを描画できます。

私のアプリケーションは FreeImage に基づいています。私はfipImageを作ります。( Bitmap のようなデータ構造体を使用)

ただし、fipWinImage で描画したい場合は、fipWinImage を Bitmap にコピーし、次に Bitmap で描画し、最後にビットマップを fipImage に再度変換する必要がありますが、これには時間とメモリが消費されます。

fipImage をビットマップに変換 -> ビットマップに描画 -> ビットマップを fipWinImage に変換

fipImage から直接 HDC を構築したいと考えています。fipWinImage に直接描画する方法を教えてください。

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

c# - C#/.NetでJPEG画像が破損していないことを検証するにはどうすればよいですか

JPEG画像が有効で破損していないかどうかを検証できる必要があります。これは、それが実際にJPEG画像であることを検証したいという質問210650と同じではありません。検証を伴う画像からの読み込み例:

クリップされた画像の例外はスローされません。現在、私たちの解決策は、ファイルを外部GDスクリプトで開き、gdImageCreateFromJpegからスローされたエラーを解析することです。

しかし、JPEGが有効であるだけでなく、完全な画像が含まれていることを検証する.Netコードがどこかにある必要がありますか?

0 投票する
4 に答える
3309 参照

windows - GDIを使用してその場でアルファチャネルを使用してビットマップを作成するにはどうすればよいですか?

レイヤードウィンドウを使用して、画面に角の丸い長方形を描画しています。ただし、ギザギザのエッジを滑らかにしたいのですが。これにはアルファブレンディングが必要だと思います。GDIでこれを行う方法はありますか?

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

c# - フォーマットされた文字列の幅と高さをC#で計算する

XSL(XML-FO)を使用してPDFを生成し、データベースから生成されたXMLを変換しようとしています。

このドキュメントのページングに関するルールは複雑であるため、XSLで使用されるXMLを生成するときに、ページ分割を決定する際に計算が行われます。これらの計算で一貫性のない結果が得られていることに気づきました。たとえば、高さの観点から必要な印刷領域は9インチで、これに72(1インチあたり72ポイント)=648ポイントを掛けてポイントに変換します。

したがって、すべての行について、MeasureStringを使用して行の高さを取得し、それを648から減算して、行を印刷するための使用可能なスペースがまだあるかどうかを確認します。ただし、ページ分割が決定されると、下部に大きな空白が残ります。648pt変換が間違っているかのようです。ここで、MeasureStringメソッドによって返される高さも間違っている可能性があることも心配しています。

長い投稿をお詫びしますが、私が間違っている可能性があることについての入力/提案に感謝します。

どうもありがとう!

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

.net - ピクセル間にスペースを挿入

GDI を使用して画面上に特定の解像度 (~ 40 DPI) のビットマップを描画し、各ピクセル間の間隔を再現できる必要があります。スペースはピクセル サイズの何分の 1 かですが、目には目立ちます。

Graphics クラスまたはビットマップを設定して、描画されたピクセル間に「空白」を挿入する方法はありますか? 複雑なコードを自分で作成する前に、どこかに欠けている設定がないことを確認したいと思います。

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

winapi - レイヤードウィンドウを使用する場合、AW_BLENDでAnimateWindowを使用することはできますか?

を使用してウィンドウを表示していますUpdateLayeredWindowが、トランジションアニメーションを追加したいと思います。AnimateWindowスライド効果またはロール効果を使用すると機能します(ちらつきはありますが)。ただし、AW_BLENDフェード効果を生成するために使用しようとすると、アニメーション後(ピクセルごとおよび画像全体)の半透明性が失われるだけでなく、デフォルトのウィンドウ境界線も表示されます。境界線が表示されないようにする方法はありますか?

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

.net - グラフィックスの廃棄に関する質問

OnPaint イベントで PaintEventArgs を介して取得した Graphics オブジェクトで Dispose() を呼び出す必要がありますか?

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

c++ - CStaticカスタムコントロール

CStaticでカスタムコントロールを作成しようとしていますvc++が、いくつか問題があります。

私はもともと、スタイルのあるCStaticコントロールを使用していました。SS_BLACKRECTこれは、オンデマンドでコントロール上に画像を表示する必要があるまでの状況に適していました。

私は実際に画像をコントロールに描画する背後にあるすべてのロジスティクスを理解しましたが、他のものに干渉せずにそれを行う方法を理解できないようです。

基本的に、私はコントロールがほとんどの場合スタイルで通常として機能することを望んでCStaticSS_BLACKRECTます。

次に、代わりにコントロール上に画像を描画するメソッドを呼び出すことができる必要があります。私はを使って描画を行っていますが、メソッドとメソッドGDIの両方で試しましたが、成功しませんでした。描画することはできますが、ベースを呼び出すと、イメージの上に描画されます。OnPaint()DrawItem()OnPaint()CStatic::OnPaint()

通常のように描画できるようにする必要がありますが、その上に画像を挿入するだけです。メソッドでそれを実行しようとすると、DrawItem()明らかにSS_BLACKRECTスタイルを使用して描画しているのではなく、想定どおりにコントロールを描画するのを待っているため、問題が発生しました。

私が探しているのは、3つのうちの1つだと思います。GDI基本OnPaint()メソッドが終了した後に使用して描画する方法。コントロールにデフォルトSS_BLACKRECTのスタイルを描画させ、その後OWNERDRAW画像を描画させる方法。または、の描画を模倣するコードSS_BLACKRECT

CStatic最後のものが最も簡単かもしれませんが、デフォルトのDrawItemのようにコントロールを描画するために設定する必要があるすべてのものがわかりません。