問題タブ [metafile]

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

qt - Qtのベクトルグラフィッククリップボード形式

Qtアプリケーションで、互換性のある方法で単純なベクターグラフィックをクリップボードに保存できるようにしたいと思います。Windowsでは、グラフィックをMicrosoftWordまたはPowerpointに貼り付けられるようにしたいと思います。Linuxでは、OpenOfficeと互換性があります。

どのフォーマットをお勧めしますか?Qtは簡単な方法でEMFを生成できますか?SVGはオプションですか?

アップデート:

私の現在の計画は、ネイティブのwin32コードを追加して、Windows上のemfにグラフィックをレンダリングすることです。このコードはLinuxでは利用できません。

0 投票する
1 に答える
990 参照

.net - CreateEnhMetaFile と PlayEnhMetaFile に相当する .NET は何ですか?

複数のページで構成される印刷ジョブを作成する VB.NET にいくつかの C++ コードを移植しています。すべてのページには、各ページで同じままであるグラフィック オブジェクト (テキスト、線、曲線など) のテンプレートがあり、その上に各ページの異なるデータがオーバーレイされます。

テンプレートは、印刷ジョブの開始時に を使用してメモリ内メタファイルとして作成され、CreateEnhMetaFile各ページの開始時に、 を使用してこのメ​​タファイルが印刷デバイス コンテキストに描画されますPlayEnhMetaFile

.NET でこれを行うにはどうすればよいですか? これまで API を読んだところ、Metafileファイルまたはストリームからインポートすることしかできず、最初から作成することはできないようです。これは正しいです?

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

delphi - TMetafile と TMetafileCanvas の操作に関するドキュメントやサンプルはどこにありますか?

アプリケーションにカスタム印刷を追加する作業を行っているため、TMetafile を使用してページを作成し、それを使用してプレビューおよび/または印刷することにしましたが、ドキュメントが不足していることに気付きました。

TMetafile と TMetafileCanvas の操作の詳細を学習するための優れたリソースはありますか?

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

.net - 信頼性の高い.wmf/wmfからピクセルベースの画像変換

こんにちは、

透明な領域を含む.wmfファイルの.netの内部(System.Drawing)ベースのMetaFile/画像処理に少し問題があります。基本的に、MetaFile.LoadFile(...)を実行し、それをtiff / pngなどとして保存するときはいつでも、そのソースファイルの一部の領域が欠落しています。実際に特定することはできませんが、メタファイル内のベクターベースの情報は問題なく機能しているようですが、ピクセルベースの領域(.wmf内に配置された画像など)が欠落しています。

信頼できる.netネイティブでサードパーティ以外の方法でwmfファイルを適切に変換する方法を知っている人はいますか(最終的なピクセルベースの画像は.wmf ..ちょうど..よく..ピクセル化されているように見えます)?

乾杯と感謝、-J

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

.net - メタファイルからJPEG/GIFへのGDI+画像変換の結果、背景が黒になります

だから私はメタファイル(正確にはEMF)をjpegまたはgif(ブラウザと互換性がある限り関係ありません)に変換しています、そして私が変換を行うとき、すべての透明なピクセルは黒くなります。GDI +でこれを行う方法がわかりませんが、ファイルを保存するために使用している方法は次のとおりです。

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

gdi - GDIデバイスコンテキストのDPIを指定する

メタファイル(EMF)を生成するアプリケーションがあります。参照デバイス(別名画面)を使用してこれらのメタファイルをレンダリングするため、メタファイルのDPIは、コードが実行されているマシンに応じて変化します。

私のコードが8.5インチx11インチのメタファイルを作成しようとしているとしましょう。開発ワークステーションを参照として使用すると、EMFが次のようになります。

  • {0、0、21590、27940}のrclFrame(1000分の1 mm単位のメタファイルの寸法)
  • {1440、900}のszlDevice(参照デバイスの寸法(ピクセル単位))
  • {416、260}のszlMillimeters(参照デバイスの寸法(mm))

さて、rclFrameはEMFのサイズが

  • 21590/2540=幅8.5
  • 27940/2540=高さ11

右に。この情報を使用して、計算が正しければ、モニターの物理DPIも決定できます。

  • (1440 * 25.4)/ 416=87.9231水平dpi
  • (900 * 25.4)/ 260=87.9231垂直dpi

問題

このメタファイルを再生するもの(EMFからPDFへの変換、WindowsエクスプローラーでEMFを右クリックしたときの[概要]ページなど)は、計算されたDPI値を切り捨てて、87.9231ではなく87を表示するようです( 88で十分です)。

これにより、メタファイルの再生時に、物理的なサイズが8.5インチx 11インチ(88 dpiを使用)ではなく、8.48インチx 10.98インチ(87 dpiを使用)になります。

  • DPIの計算に使用されるメタファイルに格納されている情報が適切な整数になるように、参照デバイスのDPIを変更することはできますか?
  • 独自のデバイスコンテキストを作成してそのDPIを指定できますか?それとも、それを行うために本当にプリンターを使用する必要がありますか?

洞察をありがとう。

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

c# - バイト配列からポリライン メタファイル レコードを解析するにはどうすればよいですか?

次の Windows GDI 型を C# で定義する際に少し助けが必要です。C#で a の形式のデータがありbyte[]、C# で次のようにマーシャリングまたはキャストする必要があります。適切な構造体を定義する必要があると思いますか? これはタイプです:

名前

最も近い API 呼び出し

説明

ポリラインはポイントのリストです。ポリゴンとは異なり、ポリラインは常に塗りつぶされておらず、開くことができます。

0 投票する
1 に答える
386 参照

c# - バイト配列から CREATEPENINDIRECT メタファイル レコードを解析するにはどうすればよいですか?

次の Windows GDI 型を C# で定義する際に少し助けが必要です。C#で a の形式のデータがありbyte[]、C# で次のようにマーシャリングまたはキャストする必要があります。ポリラインへの回答を得たので、他の質問を参照してください。これはタイプです:

名前

最も近い API 呼び出し

説明

lopnColor はペンの色、lopnWidth はペンの幅です。ペンの幅が 1 より大きいが、lopnStyle がソリッドでない場合、lopnStyle は無視され、とにかくソリッドに設定されます。

lopnStyleは、、、、、、、、、PS_SOLIDのいずれかPS_DASHです。PS_DOT_ PS_DASHDOT_ それらが実際に意味することについては、ソースを確認してください。PS_DASHDOTDOTPS_NULLPS_INSIDEFRAMEPS_USERSTYLEPS_ALTERNATE

また、lopnStyle には、ペンで描かれた線の終了スタイルと結合スタイルを設定するPS_STYLE_MASKフラグとマスクのセットもあります。これらを把握します。PS_ENDCAP_ROUNDPS_ENDCAP_SQUAREPS_ENDCAP_FLATPS_ENDCAP_MASKPS_JOIN_ROUNDPS_JOIN_BEVELPS_JOIN_MITERPS_JOIN_MASKPS_COSMETICPS_GEOMETRICPS_TYPE_MASK


更新:これは私がこれまでに得ることができる限り近いです:

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

c# - byte[] c# から PolyPolygon16 メタファイル レコードを解析するにはどうすればよいですか?

次の Windows GDI 型を C# で定義する際に少し助けが必要です。C#で a の形式のデータがありbyte[]、C# で次のようにマーシャリングまたはキャストする必要があります。

これはタイプです:

編集:私はこれまでのところ、近くに到達することができましたが、完全ではありません:

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

vb.net - VB.net MetaFile / EMFをビットマップ(.tiff)として保存する

現在、メタファイルを生成するサードパーティのコントロールがあります。問題なく.wmfファイルをディスクに保存できます。問題は、メタファイルをTiffファイルとしてレンダリングする方法です。

現在、メタファイルを取得して保存するための次のコードがあります。

サブ終了

_パブリック共有関数GetEnhMetaFileBits(ByVal hEMF As System.IntPtr、ByVal nSize As UInteger、ByVal lpData As IntPtr)As UInteger End Function

あらゆる種類のIMAGEおよびGraphic呼び出しを試しましたが、メタファイルを.tiffとして保存できません。どんな提案も素晴らしいでしょう。新しいビットマップを作成して、その上にメタファイルを描画しようとさえしました。私はいつもGDI例外がスローされることになります。