Có cách nào để lưu một đối tượng IMap dưới dạng ảnh (Jpg, png ) ?

Thảo luận trong 'Lập trình trong ArcGIS' bắt đầu bởi taibc, 1/10/12.

  1. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Chào các bạn,

    Mình có một đối tượng IMap chứa các elements: Text, Lines, .... Mình đang muốn tạo một đối tượng Image hiển thị toàn bộ các phần tử có trong IMap, để sau đó có thể lưu Image vào cơ sở dữ liệu (dùng C#, Visual Studio), nhưng chưa biết làm thế nào.

    Bạn nào biết chỉ giúp mình với ?

    Thanks and regards,
     
    Tags:
  2. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Hi,

    Mình đã sử dụng hàm sau đây để có thể xuất ra file ảnh từ IMap:

    private void SaveImapAsJpg(IMap map, string filePath)
    {
    IExport pExport = new ExportJPEGClass();
    IActiveView activeView = map as IActiveView;
    pExport.ExportFileName = filePath;


    System.Int32 screenResolution = 30;
    System.Int32 outputResolution = 200;


    pExport.Resolution = outputResolution;


    ESRI.ArcGIS.Display.tagRECT exportRECT;
    exportRECT.left = 0;
    exportRECT.top = 0;
    exportRECT.right = activeView.ExportFrame.right * (outputResolution / screenResolution);
    exportRECT.bottom = activeView.ExportFrame.bottom * (outputResolution / screenResolution);


    IEnvelope pPixelBoundsEnv = new EnvelopeClass();


    pPixelBoundsEnv.PutCoords(exportRECT.left, exportRECT.bottom, exportRECT.right, exportRECT.top);

    pExport.PixelBounds = pPixelBoundsEnv;


    int hDC;
    hDC = pExport.StartExporting();
    activeView.Output(hDC, (int)pExport.Resolution, ref exportRECT, null, null);
    pExport.FinishExporting();
    pExport.Cleanup();
    }

    Tuy nhiên, mình không hiểu tại sao trong file ảnh xuất ra, các đường (line) nét đứt bị chuyển hết thành nét liền ??
     
  3. modest

    modest Moderator

    Tham gia ngày:
    20/10/11
    Bài viết:
    772
    Đã được thích:
    6
    Điểm thành tích:
    0
    Nghề nghiệp:
    Unemployment
    Nơi ở:
    Nha Trang - Khánh Hòa
    Mình làm cách đơn giản còn hiệu quả thì mình thấy cũng rất khả thi.
    ban đầu: mình mở trang web lên mở khhu vực cần xem
    Ghi lại hình ảnh: Chụp ảnh mà hình bằng phím Prt SC trên bàn phím
    Lưu file: dùng phần mềm paint có sẵn trong wind lưu lại file ok tùy theo file mình cần lưu
     
  4. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Thanks bạn,

    Nhưng ý mình là làm việc đó ngay trong code (chương trình) để rồi lưu vào cơ sở dữ liệu. Ban đầu mình cũng định dùng C# để chụp màn hình vùng cần thiết trên cửa sổ rồi lưu ra ảnh, tuy nhiên làm theo cách này thì chất lượng ảnh không tốt (bị vỡ hình).
     

Chia sẻ trang này

Share
Đang tải...