// This actually creates our FG_Graphic object for a PNG UT_Error IE_ImpGraphic_Win32Native::importGraphic(UT_ByteBuf* pBB, FG_Graphic ** ppfg) { std::string mimetype; UT_Error err = _convertGraphic(pBB, mimetype); if (err != UT_OK) return err; /* Send Data back to AbiWord as PNG */ FG_GraphicRaster *pFGR; pFGR = new FG_GraphicRaster(); if(pFGR == NULL) return UT_IE_NOMEMORY; if (mimetype == "image/jpeg") { if(!pFGR->setRaster_JPEG(m_pBB)) { DELETEP(pFGR); return UT_IE_FAKETYPE; } } else { if(!pFGR->setRaster_PNG(m_pBB)) { DELETEP(pFGR); return UT_IE_FAKETYPE; } } *ppfg = static_cast<FG_Graphic *>(pFGR); return UT_OK; }
/*! * Convert an image data buffer into PNG image buffer. */ UT_Error IE_ImpGraphic_GdkPixbuf::importGraphic(UT_ByteBuf * pBB, FG_Graphic ** ppfg) { std::string mimetype; GdkPixbuf * pixbuf = pixbufForByteBuf ( pBB, mimetype ); UT_Error err = UT_OK; if (!pixbuf) { UT_DEBUGMSG (("GdkPixbuf: couldn't get image from loader!\n")); return UT_ERROR; } FG_GraphicRaster * pFGR = new FG_GraphicRaster(); if(pFGR == NULL) { g_object_unref(G_OBJECT(pixbuf)); DELETEP(m_pPngBB); return UT_IE_NOMEMORY; } if(mimetype == "image/jpeg") { m_pPngBB = pBB; pBB = NULL; if(!pFGR->setRaster_JPEG(m_pPngBB)) { DELETEP(pFGR); DELETEP(m_pPngBB); return UT_IE_FAKETYPE; } } else { // Initialize stuff to create our PNG. err = Initialize_PNG(); if (err) { g_object_unref(G_OBJECT(pixbuf)); return err; } err = _png_write(pixbuf); if(err == UT_OK) { if(!pFGR->setRaster_PNG(m_pPngBB)) { DELETEP(pFGR); DELETEP(m_pPngBB); return UT_IE_FAKETYPE; } } } *ppfg = static_cast<FG_Graphic *>(pFGR); return err; }
// This actually creates our FG_Graphic object for a PNG UT_Error IE_ImpGraphic_BMP::importGraphic(UT_ByteBuf* pBB, FG_Graphic ** ppfg) { UT_Error err = _convertGraphic(pBB); if (err != UT_OK) return err; /* Send Data back to AbiWord as PNG */ FG_GraphicRaster *pFGR; pFGR = new FG_GraphicRaster(); if(pFGR == NULL) return UT_IE_NOMEMORY; if(!pFGR->setRaster_PNG(m_pBB)) { DELETEP(pFGR); return UT_IE_FAKETYPE; } *ppfg = static_cast<FG_Graphic *>(pFGR); return UT_OK; }
// This creates our FG_Graphic object for a PNG UT_Error IE_ImpGraphic_WMF::importGraphic(UT_ByteBuf* pBBwmf, FG_Graphic ** ppfg) { UT_Error err = UT_OK; *ppfg = 0; UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Begin -\n")); bool importAsPNG = true; #ifdef TOOLKIT_GTK importAsPNG = false; #endif if (importAsPNG) { UT_ByteBuf * pBBpng = 0; FG_GraphicRaster * pFGR = 0; err = convertGraphic(pBBwmf,&pBBpng); if (err != UT_OK) { UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Conversion failed...\n")); return err; } pFGR = new FG_GraphicRaster(); if(pFGR == 0) { UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Ins. Mem.\n")); err = UT_IE_NOMEMORY; } else if(!pFGR->setRaster_PNG(pBBpng)) { UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Fake type?\n")); DELETEP(pFGR); err = UT_IE_FAKETYPE; } else { *ppfg = (FG_Graphic *) pFGR; } } else { UT_ByteBuf *svg = 0; err = convertGraphicToSVG(pBBwmf, &svg); if (err != UT_OK) { UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Conversion failed...\n")); return err; } FG_GraphicVector * pFGR = 0; pFGR = new FG_GraphicVector(); if(pFGR == 0) { UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Ins. Mem.\n")); err = UT_IE_NOMEMORY; } else if(!pFGR->setVector_SVG(svg)) { UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic Fake type?\n")); DELETEP(pFGR); err = UT_IE_FAKETYPE; } else { *ppfg = (FG_Graphic *) pFGR; } } UT_DEBUGMSG(("IE_ImpGraphic_WMF::importGraphic - End\n")); return err; }