[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/koffice/1.6/koffice/krita
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2006-11-13 6:42:02
Message-ID: 1163400122.078943.2492.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 604534 by rempt:

Re-instate Michael Thaler's superior scaling code & special case
it for 8 bit cmyk, rgb and cmyk (because it's 8-bit channel
dependent). Verified the results with the karbon stars image of
my last blog.
CCMAIL: <michael.thaler@physik.tu-muenchen.de>  


 M  +2 -2      core/Makefile.am  
 M  +9 -3      core/kis_image.cc  
 A             core/kis_scale_visitor.cc   [License: GPL (v2+)]
 A             core/kis_scale_visitor.h   [License: UNKNOWN]
 M  +9 -3      ui/kis_view.cc  


--- branches/koffice/1.6/koffice/krita/core/Makefile.am #604533:604534
@@ -26,7 +26,7 @@
 				kis_paint_device_iface.skel kis_image_iface.cc kis_image_iface.skel \
                kis_basic_math_toolbox.cpp \
 				kis_math_toolbox.cpp kis_exif_info.cc kis_thread_pool.cc kis_exif_value.cc \
 				kis_filter_strategy.h kis_random_accessor.cpp kis_random_sub_accessor.cpp \
-			kis_perspective_grid.cpp kis_perspectivetransform_worker.cpp \
kis_perspective_math.cpp +			kis_perspective_grid.cpp \
kis_perspectivetransform_worker.cpp kis_perspective_math.cpp kis_scale_visitor.cc  
 noinst_HEADERS = kis_rotate_visitor.h kis_selected_transaction.h \
 			kis_strategy_move.h kis_transform_worker.h kis_datamanager.h \
kis_iteratorpixeltrait.h \ @@ -42,7 +42,7 @@
 		kis_paint_device_iface.h kis_paint_device.h kis_painter.h kis_paintop.h \
kis_paintop_registry.h \  kis_palette.h kis_pattern.h kis_point.h kis_rect.h \
kis_resource.h kis_selection.h \  kis_transaction.h kis_types.h kis_vec.h \
                kis_filter_config_widget.h \
-		kis_filter_configuration.h kis_exif_info.h kis_exif_value.h kis_substrate.h \
kis_perspective_math.h +		kis_filter_configuration.h kis_exif_info.h kis_exif_value.h \
kis_substrate.h kis_perspective_math.h kis_scale_visitor.h  
 libkritaimage_la_LDFLAGS = -version-info 1:0:0 -no-undefined $(all_libraries)
 libkritaimage_la_LIBADD = ../sdk/libkritasdk.la ../kritacolor/libkritacolor.la \
tiles/libkritatile.la $(OPENEXR_LIBS) $(LCMS_LIBS) $(LIB_KOFFICECORE) \
                $(LIB_KOPAINTER) $(LIB_KDECORE) $(LIB_QT) $(OPENEXR_LIBS) 
--- branches/koffice/1.6/koffice/krita/core/kis_image.cc #604533:604534
@@ -54,6 +54,7 @@
 #include "kis_colorspace_convert_visitor.h"
 #include "kis_background.h"
 #include "kis_substrate.h"
+#include "kis_scale_visitor.h"
 #include "kis_nameserver.h"
 #include "kis_undo_adapter.h"
 #include "kis_merge_visitor.h"
@@ -638,7 +639,7 @@
     m_private->selectionChangedWhileLocked = false;
     m_private->substrate = 0;
     m_private->perspectiveGrid = new KisPerspectiveGrid();
-            
+
     m_adapter = adapter;
 
     m_nserver = new KisNameServer(i18n("Layer %1"), 1);
@@ -770,7 +771,12 @@
             m_adapter->addCommand(new LockImageCommand(this, true));
         }
 
-        {
+        if ( colorSpace()->id() == KisID("RGBA") || colorSpace()->id() == \
KisID("CMYK") || colorSpace()->id() == KisID("GRAYA")) { +          KisScaleVisitor v \
(this, sx, sy, progress, filterStrategy); +            m_rootLayer->accept( v );
+        }
+        else {
+
             KisTransformVisitor visitor (this, sx, sy, 0.0, 0.0, 0.0, 0, 0, \
progress, filterStrategy);  m_rootLayer->accept(visitor);
         }
@@ -1496,7 +1502,7 @@
       data += 4;
     }
 #endif
-    
+
     if (paintFlags & PAINT_BACKGROUND) {
         m_bkg->paintBackground(image, r, scaledImageSize, QSize(imageWidth, \
imageHeight));  image.setAlphaBuffer(false);
--- branches/koffice/1.6/koffice/krita/ui/kis_view.cc #604533:604534
@@ -101,7 +101,7 @@
 #include "kis_paint_device.h"
 #include "kis_tool_freehand.h"
 //#include "kis_guide.h"
-
+#include "kis_scale_visitor.h"
 #include "kis_layerbox.h"
 #include "kis_import_catcher.h"
 #include "kis_layer.h"
@@ -1838,9 +1838,15 @@
         t = new KisTransaction(i18n("Scale Layer"), dev);
         Q_CHECK_PTR(t);
     }
+    if ( dev->colorSpace()->id() == KisID("RGBA") || dev->colorSpace()->id() == \
KisID("CMYK") || dev->colorSpace()->id() == KisID("GRAYA")) { +        KisScaleWorker \
w (dev, sx, sy, filterStrategy); +        w.run();
+    }
+    else {
 
-    KisTransformWorker worker(dev, sx, sy, 0, 0, 0.0, 0, 0, m_progress, \
                filterStrategy);
-    worker.run();
+        KisTransformWorker worker(dev, sx, sy, 0, 0, 0.0, 0, 0, m_progress, \
filterStrategy); +        worker.run();
+    }
 
     if (t) undoAdapter()->addCommand(t);
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic