Vectorgrafik in Rasterimage konvertieren (Metafile zu Bitmap)



  • Brauche Tip zur Grafikkonvertierung!

    Wie kann ich ein emf-File (enhanced metafile) als Bitmap abspeichern?



  • hkl schrieb:

    Wie kann ich ein emf-File (enhanced metafile) als Bitmap abspeichern?

    Wie meinst du das ?
    Möchtest du es laden, und dann in ein Bitmap speichern !?

    Dann schau mal hier nach
    http://www.c-plusplus.net/forum/viewtopic.php?t=39400&sid=fc6665b3a85eb08782a621eccc48680a

    Oder hier
    http://www.c-plusplus.net/forum/viewtopic.php?t=61114&postdays=0&postorder=asc&start=0

    Gruß
    :: NoName ::



  • Danke für den Hinweis.

    Habe Funktion von 1. Link genommen:

    // erst emf generieren
    void DWFReader::create_meta(CRect &r)
    {
    meta = new CMetaFileDC;
    CWnd* desktop = CWnd::GetDesktopWindow();
    CDC *dc = desktop->GetDC();
    CString emf_fname(filename + ".emf");
    WaxSys::addToTempFileList(emf_fname);
    meta->CreateEnhanced(dc, emf_fname, NULL, "Wax+\0EMF_INTERFACE\0\0" );
    meta->SetBkMode(TRANSPARENT);
    }

    //dann graphik objekte serialisieren
    {
    hier nicht eingefügt.
    }

    //Dann als Bitmap speichern
    int DWFReader::saveBitmap(CRect &r)
    {
    CMetaFileDC *m = meta;
    HDC hdc = m->m_hDC;
    r.bottom += abs(r.top);
    r.top = 0;
    r.right += abs(r.left);
    r.left = 0;
    int width = r.right;
    int height = r.bottom;

    // Verwendete Methode aus 1. LINK
    //dc2bitmap(HDC hdc, int width, int height, char *filename)
    dc2bitmap(hdc, width, height, "waxemf.bmp");
    }

    BMP-Datei wird erzeugt.
    Bild ist leider komplett SCHWARZ!!!



  • Hmm, kommt drauf an wie du das machst. Wenn du nur mit GetDesktopWindow(); das CWnd holst, dann reicht es doch wenn du es als Bitmap abspeicherst. Wozu vorher das MetaFile ?

    Gruß
    :: NoName ::



  • Ich will ja nicht das Desktopwindow als Bild abspeichern.
    Brauch den Gerätekontext doch nur um ein Metafile zu erzeugen.

    In dieses Metafile werden dann Grafikobjekte wie Linie, Polygon etc. serialisiert.

    Hintergrund:
    Es werden Rohrkonstruktionen gezeichnet. Ein Auftrag kann bis zu 30 Konstruktionen enthalten. Für die Druckliste wird ein Html-File verwendet, und die *.emf Dateien als Link eingefügt.

    Problem: Wenn viele Graphiken im Ausdruck dann werden diese mitunter nicht schnell genug geladen, so dass zum Teil leere Blätter rauskommen.

    Deshalb möchte ich nun die Grafiken in .bmp/.png umwandeln, um zu testen ob der Ausdruck dann schneller und vollständig ist!


Anmelden zum Antworten