QImage colouriseImage(const QString& imagePath, std::function<QRgb(int)> function) { QImage originalImage(imagePath); QImage colourisedImage = originalImage.convertToFormat(QImage::Format_ARGB32); for (int y = 0; y < originalImage.width(); ++y) { for (int x = 0; x < originalImage.height(); ++x) { QRgb oldColour = originalImage.pixel(x, y); QRgb newColour = function(qGray(oldColour)); // Preserve transparency newColour = qRgba( qRed(newColour), qGreen(newColour), qBlue(newColour), qAlpha(oldColour) ); colourisedImage.setPixel(x, y, newColour); } } return colourisedImage; }
void colorChooser::processMouseMove(QMouseEvent* event) { clickedDock_-> updateColorSwatch(::colorFromScaledImageCoords(event->x(), event->y(), imageLabel_->width(), imageLabel_->height(), originalImage())); }
TEST(Image, RoundTrip) { nyra::Image originalImage( nyra::Constants::APP_PATH + "../data/unittests/lena.png"); const std::string writePathname( nyra::Constants::APP_PATH + "../data/unittests/image_test.png"); originalImage.write(writePathname); nyra::Image readBack(writePathname); EXPECT_EQ(originalImage, readBack); }
void RestorationTool::prepareFinal() { ImageIface iface(0, 0); uchar* data = iface.getOriginalImage(); DImg originalImage(iface.originalWidth(), iface.originalHeight(), iface.originalSixteenBit(), iface.originalHasAlpha(), data); setFilter(new GreycstorationFilter(&originalImage, d->settingsWidget->settings(), GreycstorationFilter::Restore, 0, 0, QImage(), this)); delete [] data; }
TEST(SimpleArrayImageTest, internalDataIsntSharedWithCopy) { SimpleArrayImage<DummyType> originalImage(7, 6); originalImage = [] (unsigned int, unsigned int) -> DummyType { return DummyType{3}; }; SimpleArrayImage<DummyType> copyOfImage(originalImage); originalImage.setPixel(0, 1, DummyType{7}); assertThat(copyOfImage).isNotEqualTo(originalImage); }
void ut_tileloading::testCenterTilePriority() { QFile testFile("/usr/share/libquill-tests/images/image_16x4.jpg"); QImage originalImage("/usr/share/libquill-tests/images/image_16x4.png"); Quill::setDefaultTileSize(QSize(2, 2)); QuillFile *file = new QuillFile(testFile.fileName()); file->setViewPort(QRect(0, 0, 6, 4)); file->setDisplayLevel(1); Quill::releaseAndWait(); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 2); QCOMPARE(file->allImageLevels().at(1).area(), QRect(2, 0, 2, 2)); // Immediate surroundings Quill::releaseAndWait(); Quill::releaseAndWait(); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 5); QCOMPARE(file->allImageLevels().at(1).size(), QSize(2, 2)); QCOMPARE(file->allImageLevels().at(2).size(), QSize(2, 2)); QCOMPARE(file->allImageLevels().at(3).size(), QSize(2, 2)); QCOMPARE(file->allImageLevels().at(4).size(), QSize(2, 2)); QCOMPARE(file->allImageLevels().at(1).area(), QRect(0, 0, 2, 2)); QCOMPARE(file->allImageLevels().at(2).area(), QRect(2, 0, 2, 2)); QCOMPARE(file->allImageLevels().at(3).area(), QRect(0, 2, 2, 2)); QCOMPARE(file->allImageLevels().at(4).area(), QRect(2, 2, 2, 2)); // Whole image Quill::releaseAndWait(); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 7); QCOMPARE(file->allImageLevels().at(1).area(), QRect(0, 0, 2, 2)); QCOMPARE(file->allImageLevels().at(2).area(), QRect(2, 0, 2, 2)); QCOMPARE(file->allImageLevels().at(3).area(), QRect(4, 0, 2, 2)); QCOMPARE(file->allImageLevels().at(4).area(), QRect(0, 2, 2, 2)); QCOMPARE(file->allImageLevels().at(5).area(), QRect(2, 2, 2, 2)); QCOMPARE(file->allImageLevels().at(6).area(), QRect(4, 2, 2, 2)); delete file; }
void ImageConverter::preview() { QLabel l; l.setPixmap(QPixmap::fromImage(originalImage())); l.show(); qApp->exec(); l.setPixmap(QPixmap::fromImage(resultImage())); l.show(); qApp->exec(); }
void colorChooser::zoomToImage() { // scroll area size _without scrollbars_ const QSize scrollSize = imageScroll_->maximumViewportSize(); const QSize imageSize = originalImage().size(); const int newHeight = qCeil(imageSize.height() * static_cast<qreal>(scrollSize.width())/imageSize.width()); if (newHeight <= scrollSize.height()) { imageLabel_->setImageWidth(scrollSize.width()); } else { imageLabel_->setImageHeight(scrollSize.height()); } }
void colorChooser::processColorAdd(QMouseEvent* event) { const QRgb color = ::colorFromScaledImageCoords(event->x(), event->y(), imageLabel_->width(), imageLabel_->height(), originalImage()); // addedColor may be a DMC version of color bool added = false; const triC addedColor = processMode_.addColor(color, &added); if (added) { clickedDock_->addToList(addedColor); } else { // the color already exists clickedDock_->moveTo(addedColor); } }
void colorChooser::zoomToHeight() { // scroll area size _without scrollbars_ const QSize scrollSize = imageScroll_->maximumViewportSize(); const QSize imageSize = originalImage().size(); // if you call width directly on the actual scrollbar widget before // it's been made visible you get a goofy response const int scrollBarWidth = style()->pixelMetric(QStyle::PM_ScrollBarExtent); const int newHeight = ::computeMaxZoomHeight(scrollSize, imageSize, scrollBarWidth); if (newHeight != -1) { imageLabel_->setImageHeight(newHeight); } else { imageLabel_->setImageWidth(scrollSize.width()); } }
void QtJP2OpenJPEGTest::lossless() { QImage originalImage("/tmp/filecolor.jpg"); QByteArray convertedArray; QBuffer buffer(&convertedArray); buffer.open(QIODevice::WriteOnly); originalImage.save(&buffer, "jp2", 100); buffer.close(); QImage convertedImage; convertedImage.loadFromData(convertedArray); QCOMPARE(originalImage.size(), convertedImage.size()); for (int i = 0; i < originalImage.height(); ++i) for (int j = 0; j < originalImage.width(); ++j) { QRgb original = originalImage.pixel(j, i); QRgb converted = convertedImage.pixel(j, i); QCOMPARE(qRed(original), qRed(converted)); QCOMPARE(qGreen(original), qGreen(converted)); QCOMPARE(qBlue(original), qBlue(converted)); } }
void patternWindow::saveSlot() { patternPrinter printer(curImage_, originalImage()); printer.save(usePdfViewer_, pdfViewerPath_); }
void colorChooser::originalSize() { imageLabel_->setImageWidth(originalImage().width()); }
void ut_tileloading::testMultiOperation() { QTemporaryFile tempFile; tempFile.open(); // The original file may be write protected and edits are disabled for // such files so we need to make a copy QImage originalImage("/usr/share/libquill-tests/images/image_16x4.png"); originalImage.save(tempFile.fileName(), "jpg"); Quill::setDefaultTileSize(QSize(2, 2)); QuillFile *file = new QuillFile(tempFile.fileName(), Strings::jpg); file->setViewPort(QRect(-8, -2, 16, 4)); file->setDisplayLevel(1); QuillImageFilter *filter = QuillImageFilterFactory::createImageFilter(QuillImageFilter::Name_BrightnessContrast); filter->setOption(QuillImageFilter::Brightness, QVariant(20)); QImage referenceImage = filter->apply(originalImage); file->runFilter(filter); Quill::releaseAndWait(); // preview load Quill::releaseAndWait(); // preview filter QCOMPARE(file->allImageLevels().count(), 1); QuillImage previewImage = file->allImageLevels().at(0); QCOMPARE(previewImage.size(), QSize(4, 1)); QCOMPARE(previewImage.fullImageSize(), QSize(16, 4)); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 1); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 2); QuillImage fragment = file->allImageLevels().at(1); QCOMPARE(fragment.size(), QSize(2, 2)); QCOMPARE(fragment.fullImageSize(), QSize(16, 4)); QCOMPARE(fragment.area(), QRect(0, 0, 2, 2)); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 2); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 3); fragment = file->allImageLevels().at(2); QCOMPARE(fragment.size(), QSize(2, 2)); QCOMPARE(fragment.fullImageSize(), QSize(16, 4)); QCOMPARE(fragment.area(), QRect(2, 0, 2, 2)); test_utils::analyze((QImage)fragment, referenceImage.copy(2, 0, 2, 2),13); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 3); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 4); fragment = file->allImageLevels().at(3); QCOMPARE(fragment.size(), QSize(2, 2)); QCOMPARE(fragment.fullImageSize(), QSize(16, 4)); QCOMPARE(fragment.area(), QRect(4, 0, 2, 2)); test_utils::analyze((QImage)fragment, referenceImage.copy(4, 0, 2, 2),13); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 4); Quill::releaseAndWait(); QCOMPARE(file->allImageLevels().count(), 5); fragment = file->allImageLevels().at(4); QCOMPARE(fragment.size(), QSize(2, 2)); QCOMPARE(fragment.fullImageSize(), QSize(16, 4)); QCOMPARE(fragment.area(), QRect(6, 0, 2, 2)); test_utils::analyze((QImage)fragment, referenceImage.copy(6, 0, 2, 2),13); delete file; }
void imageCompareBase::originalSizeHelper(const leftRightAccessor& lra, const QSize& ) { lra.label()->setImageSize (lra.image()->setScaledSize(originalImage().size())); }
Job::Job(int percentage) { Magick::Image originalImage("lena.png"); this->originalImage = originalImage; this->percentage = percentage; }
void KisFreeTransformStrategy::paint(QPainter &gc) { gc.save(); gc.setOpacity(m_d->transaction.basePreviewOpacity()); gc.setTransform(m_d->paintingTransform, true); gc.drawImage(m_d->paintingOffset, originalImage()); gc.restore(); // Draw Handles qreal d = 1; QRectF handleRect = KisTransformUtils::handleRect(KisTransformUtils::handleVisualRadius, m_d->handlesTransform, m_d->transaction.originalRect(), &d); qreal r = 1; QRectF rotationCenterRect = KisTransformUtils::handleRect(KisTransformUtils::rotationHandleVisualRadius, m_d->handlesTransform, m_d->transaction.originalRect(), &r); QPainterPath handles; handles.moveTo(m_d->transaction.originalTopLeft()); handles.lineTo(m_d->transaction.originalTopRight()); handles.lineTo(m_d->transaction.originalBottomRight()); handles.lineTo(m_d->transaction.originalBottomLeft()); handles.lineTo(m_d->transaction.originalTopLeft()); handles.addRect(handleRect.translated(m_d->transaction.originalTopLeft())); handles.addRect(handleRect.translated(m_d->transaction.originalTopRight())); handles.addRect(handleRect.translated(m_d->transaction.originalBottomLeft())); handles.addRect(handleRect.translated(m_d->transaction.originalBottomRight())); handles.addRect(handleRect.translated(m_d->transaction.originalMiddleLeft())); handles.addRect(handleRect.translated(m_d->transaction.originalMiddleRight())); handles.addRect(handleRect.translated(m_d->transaction.originalMiddleTop())); handles.addRect(handleRect.translated(m_d->transaction.originalMiddleBottom())); QPointF rotationCenter = m_d->currentArgs.originalCenter() + m_d->currentArgs.rotationCenterOffset(); QPointF dx(r + 3, 0); QPointF dy(0, r + 3); handles.addEllipse(rotationCenterRect.translated(rotationCenter)); handles.moveTo(rotationCenter - dx); handles.lineTo(rotationCenter + dx); handles.moveTo(rotationCenter - dy); handles.lineTo(rotationCenter + dy); gc.save(); //gc.setTransform(m_d->handlesTransform, true); <-- don't do like this! QPainterPath mappedHandles = m_d->handlesTransform.map(handles); QPen pen[2]; pen[0].setWidth(1); pen[1].setWidth(2); pen[1].setColor(Qt::lightGray); for (int i = 1; i >= 0; --i) { gc.setPen(pen[i]); gc.drawPath(mappedHandles); } gc.restore(); }
MainPage::MainPage(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { ui.setupUi(this); this->LoadQSS(); m_mousePressed = false; QObject::connect(ui.toolButtonHardware, SIGNAL(clicked()), this, SLOT(HardwareInforClicked())); QObject::connect(ui.toolButtonTempManagement, SIGNAL(clicked()), this, SLOT(TemperatureClicked())); QObject::connect(ui.toolButtonTestItem, SIGNAL(clicked()), this, SLOT(TestItemClicked())); QObject::connect(ui.pushButtonMin, SIGNAL(clicked()), this, SLOT(MinButtonClicked())); QObject::connect(ui.pushButtonClose, SIGNAL(clicked()), this, SLOT(CloseButtonClicked())); QObject::connect(ui.pushButtonUpdate, SIGNAL(clicked()), this, SLOT(UpdateButtonClicked())); QObject::connect(&m_checkNewTimer, SIGNAL(timeout()), this, SLOT(CheckNewTimerTimeout())); QObject::connect(&m_downloadNewTimer, SIGNAL(timeout()), this, SLOT(DownloadNewTimerTimeout())); // 隐藏默认窗口边框和标题栏 this->setWindowFlags(Qt::Window|Qt::FramelessWindowHint|Qt::WindowSystemMenuHint |Qt::WindowMinimizeButtonHint|Qt::WindowMaximizeButtonHint); this->setWindowIcon(QIcon(":/ControlImage/Main.png")); QString title = MAIN_TITLE; title += LAppParam::GetAppVersion(); this->ui.labelTitle->setText(title); this->ui.pushButtonUpdate->setVisible(false); // 获取当前系统DPI, 当前系统DPI除以设计时DPI值, 则得到UI放大系数 const float DESIGN_DPI = 96.0f; // 设计时DPI QPainter painter(this); QPaintDevice* pDevice = painter.device(); PrintLogW(L"System DPI X: %d, Y: %d", pDevice->logicalDpiX(), pDevice->logicalDpiY()); float ratioX = pDevice->logicalDpiX()/DESIGN_DPI; float ratioY = pDevice->logicalDpiY()/DESIGN_DPI; m_uiRatio = ratioX > ratioY ? ratioX : ratioY; if (m_uiRatio < 1.0f) m_uiRatio = 1.0f; PrintLogW(L"UI Ratio: %f", m_uiRatio); // 根据比例重新调整主UI大小, 并居中显示 int width = this->geometry().width() * m_uiRatio; int height = this->geometry().height() * m_uiRatio; this->setFixedSize(width, height); QDesktopWidget* pDesk = QApplication::desktop(); this->move((pDesk->width() - width) / 2, (pDesk->height() - height) / 2); // 显示启动画面 QPixmap originalImage(".\\Image\\Background\\splash.png"); QSize imageSize(originalImage.width() * m_uiRatio, originalImage.height() * m_uiRatio); QPixmap scaledImage = originalImage.scaled(imageSize, Qt::KeepAspectRatio); QFont splashFont("Microsoft YaHei UI", 10); m_splashScreen.setFont(splashFont); m_splashScreen.setPixmap(scaledImage); m_splashScreen.show(); width = ui.stackedWidget->width() * m_uiRatio; height = ui.stackedWidget->height() * m_uiRatio; m_splashScreen.showMessage(QObject::tr("Creating Hardware Page..."), Qt::AlignLeft | Qt::AlignTop, Qt::red); m_pHardwareInforPage = new HardwareInforPage(m_uiRatio); m_pHardwareInforPage->SetSplashScreen(&m_splashScreen); m_pHardwareInforPage->setFixedSize(width, height); m_pHardwareInforPage->InitHardwareInfor(); ui.stackedWidget->addWidget(m_pHardwareInforPage); m_splashScreen.showMessage(QObject::tr("Creating Temperature Page..."), Qt::AlignLeft | Qt::AlignTop, Qt::red); m_pTempManagementPage = new TempManagementPage(); m_pTempManagementPage->setFixedSize(width, height); ui.stackedWidget->addWidget(m_pTempManagementPage); m_splashScreen.showMessage(QObject::tr("Creating Test Item Page..."), Qt::AlignLeft | Qt::AlignTop, Qt::red); m_pTestItemPage = new TestItemPage(m_uiRatio); m_pTestItemPage->setFixedSize(width, height); ui.stackedWidget->addWidget(m_pTestItemPage); if (APP_NORMAL == LAppParam::GetStartMode()) ui.stackedWidget->setCurrentWidget(m_pHardwareInforPage); else if (APP_RESTARTAGING == LAppParam::GetStartMode()) ui.stackedWidget->setCurrentWidget(m_pTestItemPage); else ui.stackedWidget->setCurrentWidget(m_pTestItemPage); }