24#include <tqvaluelist.h>
27#include <kgenericfactory.h>
29#include <KoFilterChain.h>
34#include "vselection.h"
35#include "vkopainter.h"
37#include "vcomputeboundingbox.h"
42typedef KGenericFactory<PngExport, KoFilter> PngExportFactory;
43K_EXPORT_COMPONENT_FACTORY( libkarbonpngexport, PngExportFactory( "kofficefilters" ) )
46PngExport::PngExport( KoFilter*, const char*, const TQStringList& )
51KoFilter::ConversionStatus
52PngExport::convert( const TQCString& from, const TQCString& to )
54 if ( to != "image/png" || from != "application/x-karbon" )
56 return KoFilter::NotImplemented;
59 KoStoreDevice* storeIn = m_chain->storageFile( "root", KoStore::Read );
61 return KoFilter::StupidError;
64 domIn.setContent( storeIn );
65 TQDomElement docNode = domIn.documentElement();
72 VComputeBoundingBox bbox( true );
74 const KoRect &rect = bbox.boundingRect();
77 TQImage img( int( rect.width() ), int( rect.height() ), 32 );
81 VKoPainter p( img.bits(), rect.width(), rect.height() );
82 p.clear( tqRgba( 0xFF, 0xFF, 0xFF, 0xFF ) );
83 p.setWorldMatrix( TQWMatrix().translate( -rect.x(), -rect.y() ) );
85 doc.draw( &p, &rect );
87 TQImage image = img.swapRGB();
88 TQImage mirrored = image.mirror( false, true );
90 mirrored.save( m_chain->outputFile(), "PNG" );
95#include "pngexport.moc"
|