Matrox カードを介して TV にグラフィックを表示するレガシー ハードウェア/ソフトウェアがいくつかあります。グラフィックは、ファイル (bmp、tga) とテキスト要素の合成です。グラフィックのレイアウトは XML ファイルにあります。特別なハードウェアにアクセスせずに、これらのグラフィックスをプレビュー用のウィンドウにレンダリングしようとしています。基本的な .NET gfx クラス (ビットマップとグラフィックス) を使用しています。
問題は、オブジェクトがウィンドウに表示される場所と一致する XML ファイルの座標を取得できないことです。たとえば、XML では「test.bmp」を 13,159 でレンダリングするように指定されていますが、グラフィックの例では 94, 24 である必要があります。もう 1 つの XML 座標は 232,-48 ですが、実際の座標は 530, 138 です。
私はそれが多くの情報ではないことを知っていますが、これらの座標をマッピングする方法について誰かが何か意見を持っているなら、私はそれを感謝します. グラフィックのフルサイズは 720x486 です。
私が行う画像を合成するには:
// Target bitmap all others get composited into
Bitmap bmp = new Bitmap(720, 486);
Graphics g = Graphics.FromImage(bmp);
// Load a new bitmap
string file_name; // Path to image from XML file
float x, y; // Position. Pulled from the XML
float w, h; // Width and height. Also from the XML. Seems always to be Bitmap w,h
float scale_x, scale_y; // Scaling. Also from the XML
// Parse XML file....
Bitmap bmp_new = new Bitmap(file_name);
RectangleF r = new RectangleF(x, y, w * scale_x, h * scale_y);
g.DrawImage(bmp_new, r);
pixPreview.Image = bmp; // PictureBox control for veiwing