問題タブ [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.
c# - 2D Graphics Transform - 原点の移動
左下に原点を持つベクター グラフィックス フォーマットがあり、左上に原点を持つ拡張メタファイルにレンダリングする必要があります。上下反転せずに2つの間を移動する変換とは何ですか?
c# - C#でjpg、ビットマップ形式の画像をベクター形式に変換する方法
jpg 画像をベクター形式に変換しようとしています。このコードを実装しようとしていますが、例外があります。
例外: GDI+ で一般的なエラーが発生しました。 間違いを犯したコードを確認してください。前もって感謝します
c# - 「画面に表示されているように」範囲をコピーするときにExcelが生成するメタファイルの解像度をどのように計算しますか?
http://bytes.com/topic/c-sharp/answers/572657-net-clipboard-metafilesから取得したC#コードがあり、次の2つの設定でセル範囲をコピーします。
- 画面に表示されているように、
- 印刷時に示されているように。
結果のメタファイルの解像度(として文書化されていますGets the resolution, in pixels-per-inch, of this Image object
)を見ると、コピー方法に応じて異なる値が得られます。
[印刷時に表示]オプションを使用すると、解像度は600になります。これは、Excelで使用しているDPI設定に対応していると思います。
画面に表示されているように設定すると、
Metafile.VerticalResolution = 72.08107
とのようなものが吐き出されますMetafile.HorizontalResolution = 71.95952
。他のマシンでは、この値が大きく異なることを確認しました(111、130などの値)。
ズームレベルはこれに影響を与えないようです。私が観察したところによると、値は1台のマシンで一貫していますが、マシンごとに異なる場合があります。
画面モードで表示されるようにメタファイルの解像度を計算するときにExcelが従うロジックを誰かが説明できますか?
Windowsの解像度を変更し、メタファイルの解像度を測定した後、これが私が生成したテーブルです(正しくフォーマットされているように見えることを願っています):
仮想マシン(同じ物理マシン)で同様の手順を実行した後、これらは結果です。物理マシン自体よりも少し揮発性があります。このデータは役に立たないかもしれませんが、とにかく提供したいと思いました。
windows - Windows 拡張メタファイル ペンと Windows メタファイル
メタファイル (古い win3.0 形式) の巨大なデータベースを持つシステムで作業しており、それを拡張メタファイルに変換する必要があります。私はデータベース全体を変換し、ファイルを本来あるべき姿でディスプレイに再生することができました。
古いメタファイルは、現在のペン/ブラシを使用してファイルを画面に再生します。
一方、強化されたメタファイルでは、ペンを
ファイル内に「保存」する必要があり、実行時にペンを変更することができませんでした。
実行中のアプリケーションに応じて、1 つのメタファイルを異なるペンで再生できるように、実行時に拡張メタファイル ペンを変更する方法が必要です。
c# - メタファイルにテキストを追加すると、文字のフォントが変更されます
メタファイルにテキストを追加したい。
私が使用するコード:
新しいメタファイル ( 2.emf ) の文字は、元の emf ファイルよりも太字になっています。また、新しいメタファイルのサイズは、元のメタファイルの少なくとも 2 倍になります。私は何を間違っていますか?
編集: 元の emf ファイル ( 1.emf ) は emf スプール ファイルから作成され、テキストはExtTextOutW
andExtTextOutA
レコード内にあります。
c# - C# で WMF を抽出/変換する
Windows メタ ファイルが埋め込まれているように見えるバイナリ ファイルが多数あります。
{\pict\wmetafile8\picw9031\pich827\picwgoal5119\pi chgoal468 010009000003F901000005001C0000000000050000000B0200 000000050000000C023B03472303 0000001E00030000001E00050000000C02D501001405000000 0B020000000008000000FA020000 0000000000000000040000002D0100001C000000FB0238FF00 0000000000900100000001070000 00417269616C00F47740000000440E0A440786F5771086F577 0100000000003000040000002D01 010005000000020101000000050000000102FFFFFF00050000 002E011800000005000000090200 blah blah blah }
私が見ているものをC#で画像に変換する方法はありますか?
delphi - TMetaFileCanvas で透過的に PNG を描画する方法
PNG を透過的に MetaFileCanvas に描画する必要があります。これは、ビットマップ (画面に表示するときに使用する) に描画するときは問題なく動作しますが、印刷するには MetaFile が必要です。どうすればこれを達成できますか?
問題を示すコードを次に示します。添付の PNG をどこかに置き、コード内のパスを更新します。
gdi+ - EnumEnhMetaFile 解析中に Windows EMF から画像を抽出しますか?
私が変更しているプログラムは、EMF ファイルを別の形式 (SVG) に変換します。これは、EMF の各レコードに対してプログラムの解析ルーチンを呼び出す EnumEnhMetaFile() で行われます。それはベクトルのものに最適です。ただし、EMR_STRETCHDIBITS にヒットしたときにビットマップを引き出すことができる必要もあります。(最終的なターゲットは、実際には base64 でエンコードされた PNG ですが、問題はビットマップを取得することです。) Microsoft は、この時点で画像を引き出すための機能をどこかに提供していますか? ビットマップを EMF に追加する逆の操作は abitmap.Draw です。必要なのは、EnumEnhMetaFile データ処理内から操作できる abitmap.Read の一種です。
EMR_STRETCHDIBITS が提供するデータ オフセット フィールドから Windows ビットマップに変換する関数はありますか? EMF をビットマップにレンダリングしたくないことに注意してください。EMF に格納されている元のビットマップが必要です。
ありがとう。
delphi - Delphi、QR、WMF
QRフィルターでデータを「アーカイブ」する「新しい仕事」がありました。
データ構造が変更されてデータベースに保存されると、WMFフィルターを使用して「サイレント印刷」を開始し、ファイルをキャッチして、データベースBLOBのログレコードにすべて保存します。
すべて問題ありませんでしたが、同じレポートを繰り返さないようにするために後で必要になります。
「タイムスタンプQRフィールド」を無効にしましたが、記録が繰り返されました。
データベースにCRCを入れ、ページデータ(WMF)から計算しました。
興味深いのは、プログラムを終了すると、新しく生成されたWMFが変更されたため、CRCも変更されたことです。
これはQRが原因だと思ったので、簡単なDelphiプログラムで確認しました。
アプリを再起動すると、新しいwmfファイルが以前とは異なります。
wmfをbmp.Canvasにストレッチすることで問題を解決すると思いましたが、すべてのbmpが4 MBであり、10ページで4 * 10 MBでCRCする必要があるため、ロギングが遅くなりました...(WMFページあたりわずか85〜100Kバイト対4MBビットマップ)
だから私はWMFでCRCを計算できる簡単な方法を探しています。おそらくWMFヘッダーを完全に分割できれば、この問題を解決できます...現時点ではわかりません。
何か考えがありますか?私にお知らせください!
ありがとう。