[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