.NETの画像関連とArcObjects連携


startExportのハンドルとって、.NETグラフィックで画像を足していけばOK

しかし、PDFの場合は画像透過(PNGのアルファチャンネル)が効かなくなる。
ロゴ等にも使用可能?地図座標⇒スクリーン座標の計算が必要

int hDC = pExport.StartExporting();
iactiveview.Output(hDC, res, exportRect, null, null);
using (Graphics gra = Graphics.FromHdc((IntPtr)hDC))
{
gra.DrawImageUnscaled( .NETイメージ , scX, scY);
}
pExport.FinishExporting();
pExport.Cleanup();

以下計算値を補正の必要あり
int scX = Convert.ToInt32(画面座標X * (96 / gra.DpiX));
int scY = Convert.ToInt32(画面座標Y * (96 / gra.DpiY));
gra.DrawImageUnscaled(item.Value, scX, scY);

ILayer継承のクラスを作成して描画する場合はIDisplayのhDCがグラフィックハンドルなので同様の事が出来る。
http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//0012000006z1000000

Microsoftのグラフコンポーネントを画像化して、グラフマップ等が作れるが重なり回避とかは当然自分でしないと駄目。

カテゴリー: 開発 タグ: パーマリンク