30#include <tqfileinfo.h>
37#include <kimageeffect.h>
39#include <KoTextZoomHandler.h>
41#include <KoStoreDevice.h>
42#include <KoOasisContext.h>
46#include "KPrPixmapObject.h"
47#include "KPrGradient.h"
48#include "KPrPixmapObjectIface.h"
51KPrPixmapObject::KPrPixmapObject( KoPictureCollection *_imageCollection )
54 imageCollection = _imageCollection;
55 pen = KoPen( TQt::black, 1.0, TQt::NoPen );
56 mirrorType = PM_NORMAL;
62 m_ie_par1 = TQVariant();
63 m_ie_par2 = TQVariant();
64 m_ie_par3 = TQVariant();
66 m_cachedPixmap.setOptimization(TQPixmap::MemoryOptim);
70KPrPixmapObject::KPrPixmapObject( KoPictureCollection *_imageCollection,
const KoPictureKey & key )
73 imageCollection = _imageCollection;
76 pen = KoPen( TQt::black, 1.0, TQt::NoPen );
77 mirrorType = PM_NORMAL;
83 m_ie_par1 = TQVariant();
84 m_ie_par2 = TQVariant();
85 m_ie_par3 = TQVariant();
87 m_cachedPixmap.setOptimization(TQPixmap::MemoryOptim);
92DCOPObject* KPrPixmapObject::dcopObject()
95 dcop =
new KPrPixmapObjectIface(
this );
99TQString KPrPixmapObject::convertValueToPercent(
int val )
const
101 return TQString::number( val )+
"%";
104void KPrPixmapObject::saveOasisPictureElement( KoGenStyle &styleobjectauto )
const
109 styleobjectauto.addProperty(
"draw:luminance", convertValueToPercent( bright ) );
113 styleobjectauto.addProperty(
"draw:color-mode",
"greyscale" );
121 case IE_CHANNEL_INTENSITY:
124 TQString percent = convertValueToPercent( m_ie_par1.toInt() );
125 KImageEffect::RGBComponent channel =
static_cast<KImageEffect::RGBComponent
>( m_ie_par2.toInt() );
128 case KImageEffect::Red:
129 styleobjectauto.addProperty(
"draw:red", percent );
130 styleobjectauto.addProperty(
"draw:blue",
"0%" );
131 styleobjectauto.addProperty(
"draw:green",
"0%" );
133 case KImageEffect::Green:
134 styleobjectauto.addProperty(
"draw:green", percent );
135 styleobjectauto.addProperty(
"draw:red",
"0%" );
136 styleobjectauto.addProperty(
"draw:blue",
"0%" );
138 case KImageEffect::Blue:
139 styleobjectauto.addProperty(
"draw:blue", percent );
140 styleobjectauto.addProperty(
"draw:red",
"0%" );
141 styleobjectauto.addProperty(
"draw:green",
"0%" );
143 case KImageEffect::Gray:
145 case KImageEffect::All:
162 int val = m_ie_par1.toInt();
163 val = ( int )( (
double )val*100.0/255.0 );
164 styleobjectauto.addProperty(
"draw:contrast", convertValueToPercent( val ) );
204bool KPrPixmapObject::saveOasisObjectAttributes( KPOasisSaveContext &sc )
const
206 sc.xmlWriter.startElement(
"draw:image" );
207 sc.xmlWriter.addAttribute(
"xlink:type",
"simple" );
208 sc.xmlWriter.addAttribute(
"xlink:show",
"embed" );
209 sc.xmlWriter.addAttribute(
"xlink:actuate",
"onLoad" );
210 sc.xmlWriter.addAttribute(
"xlink:href", imageCollection->getOasisFileName( image ) );
211 sc.xmlWriter.endElement();
216const char * KPrPixmapObject::getOasisElementName()
const
223void KPrPixmapObject::loadImage(
const TQString & fileName )
225 loadPicture( fileName );
228void KPrPixmapObject::loadPicture(
const TQString & fileName )
230 image = imageCollection->loadPicture( fileName );
233KPrPixmapObject &KPrPixmapObject::operator=(
const KPrPixmapObject & )
239void KPrPixmapObject::setPixmap(
const KoPictureKey & key )
244void KPrPixmapObject::setPicture(
const KoPictureKey & key )
246 image = imageCollection->findPicture( key );
249void KPrPixmapObject::reload(
void )
252 setPicture( image.getKey() );
253 if (image.isNull()) {
255 image = imageCollection->loadPicture( image.getKey().filename() );
259TQDomDocumentFragment KPrPixmapObject::save( TQDomDocument& doc,
double offset )
261 TQDomDocumentFragment fragment=KPr2DObject::save(doc, offset);
262 TQDomElement elem=doc.createElement(
"KEY");
263 image.getKey().saveAttributes(elem);
264 fragment.appendChild(elem);
266 TQDomElement elemSettings = doc.createElement(
"PICTURESETTINGS" );
268 elemSettings.setAttribute(
"mirrorType",
static_cast<int>( mirrorType ) );
269 elemSettings.setAttribute(
"depth", depth );
270 elemSettings.setAttribute(
"swapRGB",
static_cast<int>( swapRGB ) );
271 elemSettings.setAttribute(
"grayscal",
static_cast<int>( grayscal ) );
272 elemSettings.setAttribute(
"bright", bright );
273 fragment.appendChild( elemSettings );
275 if (m_effect!=IE_NONE) {
276 TQDomElement imageEffects = doc.createElement(
"EFFECTS");
277 imageEffects.setAttribute(
"type",
static_cast<int>(m_effect));
278 if (m_ie_par1.isValid())
279 imageEffects.setAttribute(
"param1", m_ie_par1.toString());
280 if (m_ie_par2.isValid())
281 imageEffects.setAttribute(
"param2", m_ie_par2.toString());
282 if (m_ie_par3.isValid())
283 imageEffects.setAttribute(
"param3", m_ie_par3.toString());
284 fragment.appendChild( imageEffects );
290void KPrPixmapObject::loadOasisPictureEffect(KoOasisContext & context )
292 KoStyleStack &styleStack = context.styleStack();
293 styleStack.setTypeProperties(
"graphic" );
294 if ( styleStack.hasAttributeNS( KoXmlNS::draw,
"color-mode" ) && ( styleStack.attributeNS( KoXmlNS::draw,
"color-mode" )==
"greyscale" ) )
299 if ( styleStack.hasAttributeNS( KoXmlNS::draw,
"contrast" ) )
301 TQString str( styleStack.attributeNS( KoXmlNS::draw,
"contrast" ) );
302 str = str.remove(
'%' );
303 int val = str.toInt();
304 m_effect = IE_CONTRAST;
305 val = ( int )( 255.0 *val/100.0 );
306 m_ie_par1 = TQVariant(val);
308 if ( styleStack.hasAttributeNS( KoXmlNS::draw,
"red" ) && styleStack.attributeNS( KoXmlNS::draw,
"red" ) !=
"0%" )
310 TQString str( styleStack.attributeNS( KoXmlNS::draw,
"red" ) );
311 str = str.remove(
'%' );
312 int val = str.toInt();
313 m_effect = IE_CHANNEL_INTENSITY;
314 m_ie_par1 = TQVariant(val);
315 m_ie_par2 = TQVariant( (
int )KImageEffect::Red );
317 if ( styleStack.hasAttributeNS( KoXmlNS::draw,
"green" ) && styleStack.attributeNS( KoXmlNS::draw,
"green" ) !=
"0%" )
319 TQString str( styleStack.attributeNS( KoXmlNS::draw,
"green" ) );
320 str = str.remove(
'%' );
321 int val = str.toInt();
322 m_effect = IE_CHANNEL_INTENSITY;
323 m_ie_par1 = TQVariant(val);
324 m_ie_par2 = TQVariant( (
int )KImageEffect::Green );
326 if ( styleStack.hasAttributeNS( KoXmlNS::draw,
"blue" ) && styleStack.attributeNS( KoXmlNS::draw,
"blue" ) !=
"0%" )
328 TQString str( styleStack.attributeNS( KoXmlNS::draw,
"blue" ) );
329 str = str.remove(
'%' );
330 int val = str.toInt();
331 m_effect = IE_CHANNEL_INTENSITY;
332 m_ie_par1 = TQVariant(val);
333 m_ie_par2 = TQVariant( (
int )KImageEffect::Blue );
335 if ( styleStack.hasAttributeNS( KoXmlNS::draw,
"luminance" ) )
337 TQString str( styleStack.attributeNS( KoXmlNS::draw,
"luminance" ) );
338 str = str.remove(
'%' );
339 bright = str.toInt();
344void KPrPixmapObject::fillStyle( KoGenStyle& styleObjectAuto, KoGenStyles& mainStyles )
const
346 KPr2DObject::fillStyle( styleObjectAuto, mainStyles );
347 saveOasisPictureElement( styleObjectAuto );
350void KPrPixmapObject::loadOasis(
const TQDomElement &element, KoOasisContext & context,
KPrLoadingInfo *info)
353 KPr2DObject::loadOasis( element, context, info );
354 loadOasisPictureEffect( context );
355 TQDomNode imageBox = KoDom::namedItemNS( element, KoXmlNS::draw,
"image" );
356 const TQString href( imageBox.toElement().attributeNS( KoXmlNS::xlink,
"href", TQString()) );
357 kdDebug()<<
" href: "<<href<<endl;
358 if ( !href.isEmpty() )
360 TQString strExtension;
361 const int result=href.findRev(
".");
364 strExtension=href.mid(result+1);
366 TQString filename(href);
367 const KoPictureKey key(filename, TQDateTime::currentDateTime(TQt::UTC));
370 KoStore* store = context.store();
371 if ( store->open( filename ) )
373 KoStoreDevice dev(store);
374 if ( !image.load( &dev, strExtension ) )
375 kdWarning() <<
"Cannot load picture: " << filename <<
" " << href << endl;
378 imageCollection->insertPicture( key, image );
384double KPrPixmapObject::load(
const TQDomElement &element)
386 double offset=KPr2DObject::load(element);
387 TQDomElement e=element.namedItem(
"KEY").toElement();
390 key.loadAttributes( e );
396 e=element.namedItem(
"PIXMAP").toElement();
399 e=element.namedItem(
"FILENAME").toElement();
402 image = imageCollection->loadPicture( e.attribute(
"filename") );
408 if(e.hasAttribute(
"data"))
409 _data=e.attribute(
"data");
410 if ( _data.isEmpty() )
414 if(e.hasAttribute(
"filename"))
415 _fileName=e.attribute(
"filename");
416 if ( !_fileName.isEmpty() )
418 if (
int _envVarB = _fileName.find(
'$' ) >= 0 )
420 int _envVarE = _fileName.find(
'/', _envVarB );
422 TQString path = getenv( TQFile::encodeName(_fileName.mid( _envVarB, _envVarE-_envVarB )) );
423 _fileName.replace( _envVarB-1, _envVarE-_envVarB+1, path );
429 image = imageCollection->loadPicture( _fileName );
432 KoPictureKey key( _fileName );
435 TQByteArray rawData=_data.utf8();
436 rawData[rawData.size()-1]=char(10);
437 TQBuffer buffer(rawData);
438 image.loadXpm(&buffer);
443 e = element.namedItem(
"PICTURESETTINGS" ).toElement();
445 PictureMirrorType _mirrorType = PM_NORMAL;
447 bool _swapRGB =
false;
448 bool _grayscal =
false;
451 if ( e.hasAttribute(
"mirrorType" ) )
452 _mirrorType =
static_cast<PictureMirrorType
>( e.attribute(
"mirrorType" ).toInt() );
453 if ( e.hasAttribute(
"depth" ) )
454 _depth = e.attribute(
"depth" ).toInt();
455 if ( e.hasAttribute(
"swapRGB" ) )
456 _swapRGB =
static_cast<bool>( e.attribute(
"swapRGB" ).toInt() );
457 if ( e.hasAttribute(
"grayscal" ) )
458 _grayscal =
static_cast<bool>( e.attribute(
"grayscal" ).toInt() );
459 if ( e.hasAttribute(
"bright" ) )
460 _bright = e.attribute(
"bright" ).toInt();
462 mirrorType = _mirrorType;
465 grayscal = _grayscal;
469 mirrorType = PM_NORMAL;
476 e = element.namedItem(
"EFFECTS" ).toElement();
478 if (e.hasAttribute(
"type"))
479 m_effect =
static_cast<ImageEffect
>(e.attribute(
"type").toInt());
480 if (e.hasAttribute(
"param1"))
481 m_ie_par1 = TQVariant(e.attribute(
"param1"));
483 m_ie_par1 = TQVariant();
484 if (e.hasAttribute(
"param2"))
485 m_ie_par2 = TQVariant(e.attribute(
"param2"));
487 m_ie_par2 = TQVariant();
488 if (e.hasAttribute(
"param3"))
489 m_ie_par3 = TQVariant(e.attribute(
"param3"));
491 m_ie_par3 = TQVariant();
499void KPrPixmapObject::drawShadow( TQPainter* _painter, KoZoomHandler* _zoomHandler)
501 const double ox = orig.x();
502 const double oy = orig.y();
503 const double ow = ext.width();
504 const double oh = ext.height();
508 TQPen pen2 = pen.zoomedPen( _zoomHandler );
509 _painter->setPen( pen2 );
510 _painter->setBrush( getBrush() );
515 getShadowCoords( sx, sy );
517 _painter->translate( _zoomHandler->zoomItX( ox ), _zoomHandler->zoomItY( oy ) );
518 _painter->setPen( TQPen( shadowColor ) );
519 _painter->setBrush( shadowColor );
520 if ( kAbs(angle) <= DBL_EPSILON )
521 _painter->drawRect( _zoomHandler->zoomItX( sx ), _zoomHandler->zoomItY( sy ),
522 _zoomHandler->zoomItX( ext.width() ), _zoomHandler->zoomItY( ext.height() ) );
525 TQSize bs = TQSize( _zoomHandler->zoomItX( ow ), _zoomHandler->zoomItY( oh ) );
526 TQRect br = TQRect( 0, 0, bs.width(), bs.height() );
528 int ph = br.height();
530 int pixYPos = -rr.y();
531 int pixXPos = -rr.x();
532 br.moveTopLeft( TQPoint( -br.width() / 2, -br.height() / 2 ) );
533 rr.moveTopLeft( TQPoint( -rr.width() / 2, -rr.height() / 2 ) );
536 m.translate( pw / 2, ph / 2 );
538 m.translate( rr.left() + pixXPos + _zoomHandler->zoomItX( sx ),
539 rr.top() + pixYPos + _zoomHandler->zoomItY( sy ) );
541 _painter->setWorldMatrix( m,
true );
543 _painter->drawRect( 0, 0, bs.width(), bs.height() );
549TQPixmap KPrPixmapObject::generatePixmap(KoZoomHandler*_zoomHandler)
551 const double penw = _zoomHandler->zoomItX( ( ( pen.style() == TQt::NoPen ) ? 1 : pen.width() ) / 2.0 );
553 TQSize size( _zoomHandler->zoomSize( ext ) );
555 TQPixmap pixmap(size);
558 paint.begin( &pixmap );
559 pixmap.fill( TQt::white );
562 paint.setPen( TQt::NoPen );
563 paint.setBrush( getBrush() );
565 TQRect rect( (
int)( penw ), (
int)( penw ),
566 (
int)( _zoomHandler->zoomItX( ext.width() ) - 2.0 * penw ),
567 (
int)( _zoomHandler->zoomItY( ext.height() ) - 2.0 * penw ) );
569 if ( getFillType() == FT_BRUSH || !gradient )
570 paint.drawRect( rect );
573 gradient->setSize( size );
574 paint.drawPixmap( (
int)( penw ), (
int)( penw ),
575 gradient->pixmap(), 0, 0,
576 (
int)( _zoomHandler->zoomItX( ext.width() ) - 2 * penw ),
577 (
int)( _zoomHandler->zoomItY( ext.height() ) - 2 * penw ) );
581 image.draw(paint, 0, 0, size.width(), size.height(), 0, 0, -1, -1,
false);
584 image.setAlphaBuffer(
true);
586 tmpMask = image.createAlphaMask().scale(size);
587 pixmap.setMask(tmpMask);
593void KPrPixmapObject::draw( TQPainter *_painter, KoTextZoomHandler*_zoomHandler,
594 int pageNum, SelectionMode selectionMode,
bool drawContour )
596 if ( image.isNull() )
return;
598 if ( shadowDistance > 0 && !drawContour )
599 drawShadow(_painter, _zoomHandler);
601 const double ox = orig.x();
602 const double oy = orig.y();
603 const double ow = ext.width();
604 const double oh = ext.height();
605 const double penw = _zoomHandler->zoomItX( ( ( pen.style() == TQt::NoPen ) ? 1.0 : pen.width() ) / 2.0 );
609 _painter->translate( _zoomHandler->zoomItX( ox ), _zoomHandler->zoomItY( oy ) );
611 if ( kAbs(angle)> DBL_EPSILON ) {
612 TQSize bs = TQSize( _zoomHandler->zoomItX( ow ), _zoomHandler->zoomItY( oh ) );
613 TQRect br = TQRect( 0, 0, bs.width(), bs.height() );
615 int ph = br.height();
617 int pixYPos = -rr.y();
618 int pixXPos = -rr.x();
619 br.moveTopLeft( TQPoint( -br.width() / 2, -br.height() / 2 ) );
620 rr.moveTopLeft( TQPoint( -rr.width() / 2, -rr.height() / 2 ) );
623 m.translate( pw / 2, ph / 2 );
625 m.translate( rr.left() + pixXPos, rr.top() + pixYPos );
626 _painter->setWorldMatrix( m,
true );
631 TQRect rect( 0, 0, (
int)( _zoomHandler->zoomItX( ow ) ),
632 (
int)( _zoomHandler->zoomItY( oh ) ) );
635 if (m_ie_par1.isNull())
636 variants1=m_cachedPar1.isNull();
638 variants1=(m_ie_par1 == m_cachedPar1);
640 if (m_ie_par2.isNull())
641 variants2=m_cachedPar2.isNull();
643 variants2=(m_ie_par2 == m_cachedPar2);
645 if (m_ie_par3.isNull())
646 variants3=m_cachedPar3.isNull();
648 variants3=(m_ie_par3 == m_cachedPar3);
650 if (m_cachedRect == rect
652 && m_cachedMirrorType == mirrorType && m_cachedSwapRGB == swapRGB && m_cachedGrayscal == grayscal
653 && m_cachedBright == bright && m_cachedEffect == m_effect
655 && m_cachedDepth == depth
657 && m_ie_par1 == m_cachedPar1 && m_ie_par2 == m_cachedPar2 && m_ie_par3 == m_cachedPar3
659 && variants1 && variants2 && variants3
667 if (mirrorType != PM_NORMAL || depth != 0 || swapRGB || grayscal || bright != 0 || m_effect!=IE_NONE)
668 m_cachedPixmap = changePictureSettings( generatePixmap( _zoomHandler ) );
670 m_cachedPixmap = generatePixmap( _zoomHandler );
672 m_cachedMirrorType = mirrorType;
673 m_cachedSwapRGB = swapRGB;
674 m_cachedGrayscal = grayscal;
675 m_cachedBright = bright;
676 m_cachedEffect = m_effect;
677 m_cachedDepth = depth;
678 m_cachedPar1 = m_ie_par1;
679 m_cachedPar2 = m_ie_par2;
680 m_cachedPar3 = m_ie_par3;
683 _painter->drawPixmap( rect, m_cachedPixmap);
690 pen2 = TQPen( TQt::black, 1, TQt::DotLine );
691 _painter->setRasterOp( TQt::NotXorROP );
695 pen2.setWidth( _zoomHandler->zoomItX( ( pen.style() == TQt::NoPen ) ? 1.0 : (double)pen.width() ) );
697 _painter->setPen( pen2 );
698 _painter->setBrush( TQt::NoBrush );
699 _painter->drawRect( (
int)( penw ), (
int)( penw ),
700 (
int)( _zoomHandler->zoomItX( ow ) - 2.0 * penw ),
701 (
int)( _zoomHandler->zoomItY( oh ) - 2.0 * penw ) );
705 KPrObject::draw( _painter, _zoomHandler, pageNum, selectionMode, drawContour );
708TQPixmap KPrPixmapObject::getOriginalPixmap()
710 TQSize _pixSize = image.getOriginalSize();
711 kdDebug(33001) <<
"KPrPixmapObject::getOriginalPixmap size= " << _pixSize << endl;
712 TQPixmap _pixmap = image.generatePixmap( _pixSize,
true );
718TQPixmap KPrPixmapObject::changePictureSettings( TQPixmap _tmpPixmap )
720 TQImage _tmpImage = _tmpPixmap.convertToImage();
722 if (_tmpImage.isNull())
725 bool _horizontal =
false;
726 bool _vertical =
false;
727 if ( mirrorType == PM_HORIZONTAL )
729 else if ( mirrorType == PM_VERTICAL )
731 else if ( mirrorType == PM_HORIZONTALANDVERTICAL ) {
736 _tmpImage = _tmpImage.mirror( _horizontal, _vertical );
739 TQImage tmpImg = _tmpImage.convertDepth( depth );
740 if ( !tmpImg.isNull() )
745 _tmpImage = _tmpImage.swapRGB();
748 if ( depth == 1 || depth == 8 ) {
749 for (
int i = 0; i < _tmpImage.numColors(); ++i ) {
750 TQRgb rgb = _tmpImage.color( i );
751 int gray = tqGray( rgb );
752 rgb = tqRgb( gray, gray, gray );
753 _tmpImage.setColor( i, rgb );
757 int _width = _tmpImage.width();
758 int _height = _tmpImage.height();
762 for ( _x = 0; _x < _width; ++_x ) {
763 for ( _y = 0; _y < _height; ++_y ) {
764 if ( _tmpImage.valid( _x, _y ) ) {
765 TQRgb rgb = _tmpImage.pixel( _x, _y );
766 int gray = tqGray( rgb );
767 rgb = tqRgb( gray, gray, gray );
768 _tmpImage.setPixel( _x, _y, rgb );
776 if ( depth == 1 || depth == 8 ) {
777 for (
int i = 0; i < _tmpImage.numColors(); ++i ) {
778 TQRgb rgb = _tmpImage.color( i );
782 rgb = c.light( 100 + bright ).rgb();
784 rgb = c.dark( 100 + abs( bright ) ).rgb();
786 _tmpImage.setColor( i, rgb );
790 int _width = _tmpImage.width();
791 int _height = _tmpImage.height();
795 for ( _x = 0; _x < _width; ++_x ) {
796 for ( _y = 0; _y < _height; ++_y ) {
797 if ( _tmpImage.valid( _x, _y ) ) {
798 TQRgb rgb = _tmpImage.pixel( _x, _y );
802 rgb = c.light( 100 + bright ).rgb();
804 rgb = c.dark( 100 + abs( bright ) ).rgb();
806 _tmpImage.setPixel( _x, _y, rgb );
814 case IE_CHANNEL_INTENSITY: {
815 _tmpImage = KImageEffect::channelIntensity(_tmpImage, m_ie_par1.toDouble()/100.0,
816 static_cast<KImageEffect::RGBComponent
>(m_ie_par2.toInt()));
820 _tmpImage = KImageEffect::fade(_tmpImage, m_ie_par1.toDouble(), m_ie_par2.toColor());
824 _tmpImage = KImageEffect::flatten(_tmpImage, m_ie_par1.toColor(), m_ie_par2.toColor());
828 _tmpImage = KImageEffect::intensity(_tmpImage, m_ie_par1.toDouble()/100.0);
831 case IE_DESATURATE: {
832 _tmpImage = KImageEffect::desaturate(_tmpImage, m_ie_par1.toDouble());
836 _tmpImage = KImageEffect::contrast(_tmpImage, m_ie_par1.toInt());
840 KImageEffect::normalize(_tmpImage);
844 KImageEffect::equalize(_tmpImage);
848 KImageEffect::threshold(_tmpImage, m_ie_par1.toInt());
852 KImageEffect::solarize(_tmpImage, m_ie_par1.toDouble());
856 _tmpImage = KImageEffect::emboss(_tmpImage);
860 _tmpImage = KImageEffect::despeckle(_tmpImage);
864 _tmpImage = KImageEffect::charcoal(_tmpImage, m_ie_par1.toDouble());
868 _tmpImage = KImageEffect::addNoise(_tmpImage,
static_cast<KImageEffect::NoiseType
>(m_ie_par1.toInt()));
872 _tmpImage = KImageEffect::blur(_tmpImage, m_ie_par1.toDouble());
876 _tmpImage = KImageEffect::edge(_tmpImage, m_ie_par1.toDouble());
880 _tmpImage = KImageEffect::implode(_tmpImage, m_ie_par1.toDouble());
884 _tmpImage = KImageEffect::oilPaint(_tmpImage, m_ie_par1.toInt());
888 _tmpImage = KImageEffect::sharpen(_tmpImage, m_ie_par1.toDouble());
892 _tmpImage = KImageEffect::spread(_tmpImage, m_ie_par1.toInt());
896 _tmpImage = KImageEffect::shade(_tmpImage, m_ie_par1.toBool(), m_ie_par2.toDouble(), m_ie_par3.toDouble());
900 _tmpImage = KImageEffect::swirl(_tmpImage, m_ie_par1.toDouble());
904 _tmpImage = KImageEffect::wave(_tmpImage, m_ie_par1.toDouble(), m_ie_par2.toDouble());
912 _tmpPixmap.convertFromImage( _tmpImage );
917void KPrPixmapObject::flip(
bool horizontal )
919 KPr2DObject::flip( horizontal );
922 switch ( mirrorType )
925 mirrorType = PM_HORIZONTAL;
928 mirrorType = PM_NORMAL;
931 mirrorType = PM_HORIZONTALANDVERTICAL;
933 case PM_HORIZONTALANDVERTICAL:
934 mirrorType = PM_VERTICAL;
940 switch ( mirrorType )
943 mirrorType = PM_VERTICAL;
946 mirrorType = PM_HORIZONTALANDVERTICAL;
949 mirrorType = PM_NORMAL;
951 case PM_HORIZONTALANDVERTICAL:
952 mirrorType = PM_HORIZONTAL;
Temporary information used only during loading.