本文整理汇总了C++中KisImageSP类的典型用法代码示例。如果您正苦于以下问题:C++ KisImageSP类的具体用法?C++ KisImageSP怎么用?C++ KisImageSP使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了KisImageSP类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testObligeSingleChildImpl
void testObligeSingleChildImpl(bool transpDefaultPixel)
{
QString id = !transpDefaultPixel ?
"single_layer_no_channel_flags_nontransp_def_pixel.kra" :
"single_layer_no_channel_flags_transp_def_pixel.kra";
QString fileName = TestUtil::fetchDataFileLazy(id);
KisDocument *doc = KisPart::instance()->createDocument();
doc->loadNativeFormat(fileName);
KisImageSP image = doc->image();
QVERIFY(image);
QCOMPARE(image->nlayers(), 2);
KisNodeSP root = image->root();
KisNodeSP child = root->firstChild();
QVERIFY(child);
QCOMPARE(root->original(), root->projection());
if (transpDefaultPixel) {
QCOMPARE(root->original(), child->projection());
} else {
QVERIFY(root->original() != child->projection());
}
delete doc;
}
示例2: KisDoc2
void KritaShape::tryLoadFromImageData(KoImageData *data)
{
if (data == 0)
return;
// TODO maybe we want to use the image rawData for that
QImage image = data->image();
if (image.isNull())
return;
delete m_d->doc;
m_d->doc = new KisDoc2(0, 0, false);
connect(m_d->doc, SIGNAL(sigLoadingFinished()), this, SLOT(slotLoadingFinished()));
// Create an empty image
KisImageSP img = m_d->doc->newImage(i18n("Converted from KoImageData"), image.width(), image.height(), 0);
// Convert the QImage to a paint device
KisPaintLayer * layer = dynamic_cast<KisPaintLayer*>(img->root()->firstChild().data());
if (layer)
layer->paintDevice()->convertFromQImage(image, "", 0, 0);
// emits sigLoadingFinished
m_d->doc->setCurrentImage(img);
}
示例3: qimage
void KisPrescaledProjectionTest::testScalingUndeferredSmoothing()
{
// Set up a nice image
QImage qimage(QString(FILES_DATA_DIR) + QDir::separator() + "lena.png");
// Undo adapter not necessary
const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
KisImageSP image = new KisImage(0, qimage.width(), qimage.height(), cs, "projection test");
// 300 dpi recalculated to pixels per point (of which there are 72
// to the inch)
image->setResolution(100, 100);
KisPaintLayerSP layer = new KisPaintLayer(image, "test", OPACITY_OPAQUE_U8, cs);
image->addNode(layer.data(), image->rootLayer(), 0);
layer->paintDevice()->convertFromQImage(qimage, 0);
KisPrescaledProjection projection;
KisCoordinatesConverter converter;
converter.setImage(image);
projection.setCoordinatesConverter(&converter);
projection.setMonitorProfile(0,
KoColorConversionTransformation::internalRenderingIntent(),
KoColorConversionTransformation::internalConversionFlags());
projection.setImage(image);
testProjectionScenario(projection, &converter, "120dpi");
}
示例4: KisImage
void KisImageViewConverterTest::testViewToDocument()
{
const KoColorSpace * colorSpace = KoColorSpaceRegistry::instance()->rgb8();
KisImageSP image = new KisImage(0, 512, 512, colorSpace, "test");
KisImageViewConverter viewConverter(image);
image->setResolution(1.38888888, 1.38888888);
QVERIFY(viewConverter.viewToDocument(QPointF(0.0, 0.0))
== QPointF(0.0, 0.0));
QPointF f = viewConverter.viewToDocument(QPointF(5, 5));
QVERIFY(f.x() < 3.7 && f.x() > 3.5 && f.y() < 3.7 && f.y() > 3.5);
QRectF r = viewConverter.viewToDocument(QRectF(0.0, 0.0, 5, 5));
QVERIFY(r.width() < 3.7 && r.width() > 3.5
&& r.height() < 3.7 && r.height() > 3.5);
QSizeF s = viewConverter.viewToDocument(QSizeF(1.0, 1.0));
QVERIFY(s.width() < 0.721 && s.width() > 0.719
&& s.height() < 0.721 && s.height() > 0.719);
double x = viewConverter.viewToDocumentX(1.0);
QVERIFY(x < 0.721 && x > 0.719);
double y = viewConverter.viewToDocumentY(1.0);
QVERIFY(y < 0.721 && y > 0.719);
}
示例5: imageRect
void KisSimpleUpdateQueueTest::testMixingTypes()
{
QRect imageRect(0,0,1024,1024);
const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
KisImageSP image = new KisImage(0, imageRect.width(), imageRect.height(), cs, "merge test");
KisPaintLayerSP paintLayer = new KisPaintLayer(image, "test", OPACITY_OPAQUE_U8);
image->lock();
image->addNode(paintLayer);
image->unlock();
QRect dirtyRect1(0,0,200,200);
QRect dirtyRect2(0,0,200,200);
QRect dirtyRect3(20,20,200,200);
KisTestableSimpleUpdateQueue queue;
KisWalkersList& walkersList = queue.getWalkersList();
queue.addUpdateJob(paintLayer, dirtyRect1, imageRect, 0);
queue.addFullRefreshJob(paintLayer, dirtyRect2, imageRect, 0);
queue.addFullRefreshJob(paintLayer, dirtyRect3, imageRect, 0);
queue.addUpdateNoFilthyJob(paintLayer, dirtyRect1, imageRect, 0);
QCOMPARE(walkersList.size(), 3);
QVERIFY(checkWalker(walkersList[0], QRect(0,0,200,200)));
QVERIFY(checkWalker(walkersList[1], QRect(0,0,220,220)));
QVERIFY(checkWalker(walkersList[2], QRect(0,0,200,200)));
QCOMPARE(walkersList[0]->type(), KisBaseRectsWalker::UPDATE);
QCOMPARE(walkersList[1]->type(), KisBaseRectsWalker::FULL_REFRESH);
QCOMPARE(walkersList[2]->type(), KisBaseRectsWalker::UPDATE_NO_FILTHY);
}
示例6: Q_UNUSED
void KisPasteNewActionFactory::run(KisView2 *view)
{
Q_UNUSED(view);
KisPaintDeviceSP clip = KisClipboard::instance()->clip(QRect(), true);
if (!clip) return;
QRect rect = clip->exactBounds();
if (rect.isEmpty()) return;
KisDoc2 *doc = new KisDoc2();
if (!doc) return;
KisImageSP image = new KisImage(doc->createUndoStore(),
rect.width(),
rect.height(),
clip->colorSpace(),
i18n("Pasted"));
KisPaintLayerSP layer =
new KisPaintLayer(image.data(), clip->objectName(),
OPACITY_OPAQUE_U8, clip->colorSpace());
KisPainter p(layer->paintDevice());
p.setCompositeOp(COMPOSITE_COPY);
p.bitBlt(0, 0, clip, rect.x(), rect.y(), rect.width(), rect.height());
p.end();
image->addNode(layer.data(), image->rootLayer());
doc->setCurrentImage(image);
KoMainWindow *win = doc->documentPart()->createMainWindow();
win->show();
win->setRootDocument(doc);
}
示例7: Q_UNUSED
void KisPasteNewActionFactory::run(KisViewManager *viewManager)
{
Q_UNUSED(viewManager);
KisPaintDeviceSP clip = KisClipboard::instance()->clip(QRect(), true);
if (!clip) return;
QRect rect = clip->exactBounds();
if (rect.isEmpty()) return;
KisDocument *doc = KisPart::instance()->createDocument();
KisImageSP image = new KisImage(doc->createUndoStore(),
rect.width(),
rect.height(),
clip->colorSpace(),
i18n("Pasted"));
KisPaintLayerSP layer =
new KisPaintLayer(image.data(), clip->objectName(),
OPACITY_OPAQUE_U8, clip->colorSpace());
KisPainter::copyAreaOptimized(QPoint(), clip, layer->paintDevice(), rect);
image->addNode(layer.data(), image->rootLayer());
doc->setCurrentImage(image);
KisPart::instance()->addDocument(doc);
KisMainWindow *win = viewManager->mainWindow();
win->addViewAndNotifyLoadingCompleted(doc);
}
示例8: kdDebug
KoFilter::ConversionStatus MagickExport::convert(const QCString& from, const QCString& to)
{
kdDebug(41008) << "magick export! From: " << from << ", To: " << to << "\n";
if (from != "application/x-krita")
return KoFilter::NotImplemented;
// XXX: Add dialog about flattening layers here
KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument());
QString filename = m_chain->outputFile();
if (!output)
return KoFilter::CreationError;
if (filename.isEmpty()) return KoFilter::FileNotFound;
KURL url;
url.setPath(filename);
KisImageSP img = output->currentImage();
KisImageMagickConverter ib(output, output->undoAdapter());
KisPaintDeviceSP pd = new KisPaintDevice(*img->projection());
KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd);
vKisAnnotationSP_it beginIt = img->beginAnnotations();
vKisAnnotationSP_it endIt = img->endAnnotations();
if (ib.buildFile(url, l, beginIt, endIt) == KisImageBuilder_RESULT_OK) {
return KoFilter::OK;
}
return KoFilter::InternalError;
}
示例9: KisSurrogateUndoStore
void KisProcessingApplicatorTest::testNoUIUpdates()
{
KisSurrogateUndoStore *undoStore = new KisSurrogateUndoStore();
KisPaintLayerSP paintLayer1;
KisPaintLayerSP paintLayer2;
KisImageSP image = createImage(undoStore, paintLayer1, paintLayer2);
QSignalSpy uiSignalsCounter(image.data(), SIGNAL(sigImageUpdated(const QRect&)));
QRect cropRect1(40,40,86,86);
{
KisProcessingApplicator applicator(image, image->rootLayer(),
KisProcessingApplicator::RECURSIVE |
KisProcessingApplicator::NO_UI_UPDATES);
KisProcessingVisitorSP visitor =
new KisCropProcessingVisitor(cropRect1, true, true);
applicator.applyVisitor(visitor);
applicator.end();
image->waitForDone();
}
QCOMPARE(uiSignalsCounter.size(), 0);
uiSignalsCounter.clear();
undoStore->undo();
image->waitForDone();
QCOMPARE(uiSignalsCounter.size(), 0);
}
示例10: KisImage
void KisImageTest::testLayerComposition()
{
KisImageSP image = new KisImage(0, IMAGE_WIDTH, IMAGE_WIDTH, 0, "layer tests");
QVERIFY(image->rootLayer() != 0);
QVERIFY(image->rootLayer()->firstChild() == 0);
KisLayerSP layer = new KisPaintLayer(image, "layer 1", OPACITY_OPAQUE_U8);
image->addNode(layer);
KisLayerSP layer2 = new KisPaintLayer(image, "layer 2", OPACITY_OPAQUE_U8);
image->addNode(layer2);
QVERIFY(layer->visible());
QVERIFY(layer2->visible());
KisLayerComposition comp(image, "comp 1");
comp.store();
layer2->setVisible(false);
QVERIFY(layer->visible());
QVERIFY(!layer2->visible());
KisLayerComposition comp2(image, "comp 2");
comp2.store();
comp.apply();
QVERIFY(layer->visible());
QVERIFY(layer2->visible());
comp2.apply();
QVERIFY(layer->visible());
QVERIFY(!layer2->visible());
}
示例11: KisImage
void KisMaskTest::testDeferredOffsetInitialization()
{
const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
KisImageSP image = new KisImage(0, 100, 100, cs, "stest");
KisMaskSP mask = new TestMask;
QCOMPARE(mask->x(), 0);
QCOMPARE(mask->y(), 0);
mask->setX(10);
QCOMPARE(mask->x(), 10);
QCOMPARE(mask->y(), 0);
mask->setY(11);
QCOMPARE(mask->x(), 10);
QCOMPARE(mask->y(), 11);
mask->initSelection(image->rootLayer());
// IMPORTANT: a bit weird behavior, but it is needed for
// KisKraLoadVisitor to work properly
QCOMPARE(mask->x(), 10);
QCOMPARE(mask->y(), 11);
// Now there is no deferred initialization, so the offest
// should simply be reset
mask->initSelection(image->rootLayer());
QCOMPARE(mask->x(), 0);
QCOMPARE(mask->y(), 0);
KisSelectionSP selection = mask->selection();
QCOMPARE(selection->parentNode(), KisNodeSP(mask));
}
示例12: imageCanUseHDRExposureProgram
bool KisOpenGLImageTextures::imageCanUseHDRExposureProgram(KisImageSP image)
{
#ifdef HAVE_GLEW
if (!image->colorSpace()->hasHighDynamicRange()) {
return false;
}
KisConfig cfg;
if (!cfg.useOpenGLShaders()) {
return false;
}
if (HDRExposureProgram == 0) {
return false;
}
if (!HDRExposureProgram->isValid()) {
return false;
}
if (!haveHDRTextureFormat(image->colorSpace())) {
return false;
}
return true;
#else
Q_UNUSED(image);
return false;
#endif
}
示例13: run
void KisCutCopyActionFactory::run(bool willCut, KisView2 *view)
{
KisImageSP image = view->image();
bool haveShapesSelected = view->selectionManager()->haveShapesSelected();
if (haveShapesSelected) {
#ifdef __GNUC__
#warning "Add saving of XML data for Cut/Copy of shapes"
#endif
image->barrierLock();
if (willCut) {
view->canvasBase()->toolProxy()->cut();
} else {
view->canvasBase()->toolProxy()->copy();
}
image->unlock();
} else {
KisNodeSP node = view->activeNode();
if (!node) return;
image->barrierLock();
ActionHelper::copyFromDevice(view, node->paintDevice());
image->unlock();
KUndo2Command *command = 0;
if (willCut && node->isEditable()) {
struct ClearSelection : public KisTransactionBasedCommand {
ClearSelection(KisNodeSP node, KisSelectionSP sel)
: m_node(node), m_sel(sel) {}
KisNodeSP m_node;
KisSelectionSP m_sel;
KUndo2Command* paint() {
KisTransaction transaction("", m_node->paintDevice());
m_node->paintDevice()->clearSelection(m_sel);
m_node->setDirty(m_sel->selectedRect());
return transaction.endAndTake();
}
};
command = new ClearSelection(node, view->selection());
}
QString actionName = willCut ? i18n("Cut") : i18n("Copy");
KisProcessingApplicator *ap = beginAction(view, actionName);
if (command) {
ap->applyCommand(command,
KisStrokeJobData::SEQUENTIAL,
KisStrokeJobData::NORMAL);
}
KisOperationConfiguration config(id());
config.setProperty("will-cut", willCut);
endAction(ap, config.toXML());
}
}
示例14: convertToQImage
QImage KritaShape::convertToQImage()
{
if (m_d->doc && m_d->doc->image()) {
KisImageSP img = m_d->doc->image();
return img->convertToQImage(0, 0, img->width(), img->height(), m_d->displayProfile);
}
return QImage();
}
示例15: redo
void KisImageResizeCommand::redo()
{
KisImageSP image = m_image.toStrongRef();
if (!image) {
return;
}
image->setSize(m_sizeAfter);
}