地図画像Byte配列


まあリファレンス通りなんだけども。
画像の縦横比と出力範囲座標の縦横比くらいは合わせた方がよい。

    int width, height;
    width = height = 800;

    byte[] data = null;
    using (ComReleaser com = new ComReleaser())
    using (Bitmap bmp = new Bitmap(width, height, PixelFormat.Format32bppArgb))
    using (Graphics g = Graphics.FromImage(bmp))
    using (MemoryStream mem = new MemoryStream())
    {
        IMapDocument mapDoc = new MapDocumentClass();
        com.ManageLifetime(mapDoc);
        mapDoc.Open(@"C:\xxxxxx.mxd", null);

        IMap map = mapDoc.get_Map(0);
        com.ManageLifetime(map);

        IActiveView actView = (IActiveView)map;
        tagRECT tag = new tagRECT();
        tag.left = tag.top = 0;
        tag.right = width;
        tag.bottom = height;

        actView.Output(g.GetHdc().ToInt32(), 96, ref tag, actView.Extent , null);

        //描画確定と破棄
        g.Dispose();

        bmp.Save(mem, ImageFormat.Png);
        data = mem.ToArray();
        //確任用
        bmp.Save(@"c:\test.png", ImageFormat.Png);
    }//end graphics
カテゴリー: 開発 タグ: パーマリンク