Beispiel #1
0
void ImageViewer::calcScaleRatio()
{
    if(image.width() == 0 || image.height() == 0) {
        scale = 1.0;
        scaleMin = qMin(Config::ScaleMinLimit, scale);
        return;
    }

    QSize pixSize(image.size());

    switch (scaleMode) {
    case Config::KeepImageSize:
        scale = 1.0;
        break;
    case Config::FitWidgetWidth:
        scale = width() / qreal(image.width());
        break;
    case Config::FitWidgetHeight:
        scale = height() / qreal(image.height());
        break;
    case Config::ScaleToFitWidget:
    {
        qreal widthRatio = width() / qreal(image.width());
        qreal heightRatio = height() / qreal(image.height());
        scale = qMin(widthRatio, heightRatio);
        break;
    }
    case Config::ScaleToExpandWidget:
    {
        qreal widthRatio = width() / qreal(image.width());
        qreal heightRatio = height() / qreal(image.height());
        scale = qMax(widthRatio, heightRatio);
        break;
    }
    case Config::ScaleLargeImageToFitWidget:
    default:
        //if image large than widget, will scale image to fit widget.
        if(!(rect().size() - pixSize).isValid())
            pixSize.scale(rect().size() + Config::SizeAdjusted, Qt::KeepAspectRatio);
        scale = qreal(pixSize.width()) / image.width();
        break;
    }

    scaleMin = qMin(Config::ScaleMinLimit, scale);
}
Beispiel #2
0
void STClearButtonView::relayout(){
    QPixmap pix=m_item->pixmap();
    QSizeF pixSize(0,0);
    if(!pix.isNull()){
        pixSize=pix.size();
    }
    m_item->setPos((m_size.width()-pixSize.width())*.5f,
                   (m_size.height()-pixSize.height())*.5f);

    if(!m_hover){
        m_item->setOpacity(0.6f);
    }else if(m_drag){
        m_item->setOpacity(0.4f);
    }else{
        m_item->setOpacity(0.8f);
    }

}
Beispiel #3
0
void KisPresetDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
{
    painter->save();
    painter->setRenderHint(QPainter::SmoothPixmapTransform, true);

    if (! index.isValid())
        return;

    KisPaintOpPreset* preset = static_cast<KisPaintOpPreset*>(index.internalPointer());

    QImage preview = preset->image();

    if(preview.isNull()) {
        return;
    }

    QRect paintRect = option.rect.adjusted(1, 1, -1, -1);
    if (!m_showText) {
        painter->drawImage(paintRect.x(), paintRect.y(),
                           preview.scaled(paintRect.size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
    } else {
        QSize pixSize(paintRect.height(), paintRect.height());
        painter->drawImage(paintRect.x(), paintRect.y(),
                           preview.scaled(pixSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));

        painter->drawText(pixSize.width() + 10, option.rect.y() + option.rect.height() - 10, preset->name());
    }
    if (m_useDirtyPresets && preset->isPresetDirty()) {
        const QIcon icon = KisIconUtils::loadIcon(koIconName("dirty-preset"));
        QPixmap pixmap = icon.pixmap(QSize(15,15));
        painter->drawPixmap(paintRect.x() + 3, paintRect.y() + 3, pixmap);
    }

    if (!preset->settings() || !preset->settings()->isValid()) {
        const QIcon icon = KisIconUtils::loadIcon("broken-preset");
        icon.paint(painter, QRect(paintRect.x() + paintRect.height() - 25, paintRect.y() + paintRect.height() - 25, 25, 25));
    }
    if (option.state & QStyle::State_Selected) {
        painter->setCompositionMode(QPainter::CompositionMode_HardLight);
        painter->setOpacity(0.65);
        painter->fillRect(option.rect, option.palette.highlight());
    }
    painter->restore();
}
Beispiel #4
0
void ImageViewer::initToFitWidget()//no change the value of rotate
{
    //restore the cursor even if the image cannot load.
    setCursor(QCursor(Qt::ArrowCursor));

    if(noPicture()) return;

    QSize pixSize(image.size());
    //if image large than widget, will scale image to fit widget.
    if(!(rect().size() - pixSize).isValid())//! SIZE_ADJUST !!!
        pixSize.scale(rect().size() + Config::SizeAdjusted, Qt::KeepAspectRatio);
    if(image.width() == 0)
        scale = 1.0;
    else
        scale = qreal(pixSize.width()) / image.width();
    scaleMin = qMin(Config::ScaleMin, scale);

    updateTopLeft();
    shift = Config::OriginPoint;
}
PersonPresentationWidget::PersonPresentationWidget(const QString &name, const QIcon &avatar, QWidget *parent)
    : QWidget(parent)
{
    setLayout(new QHBoxLayout(this));

    m_email = new QLabel(this);
    m_phone = new QLabel(this);
    m_name = new QLabel(this);
    m_pixmap = new QLabel(this);

    m_selected = new QCheckBox(this);
    m_selected->setChecked(true);

    m_name->setText(name);

    // Scaling the pixmap size to the name font
    int pixmapHeight = m_name->fontMetrics().height()*3;
    QSize pixSize(pixmapHeight,pixmapHeight);

    m_pixmap->setPixmap( avatar.pixmap(pixSize)
                .scaled(pixSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
    draw() ;
}
Beispiel #6
0
	size_t Image::pixIndex(size_t x, size_t y)
	{
		return (x + y*width)*pixSize();
	}
Beispiel #7
0
	void Image::setData(std::vector<unsigned char> data)
	{
		this->data = data;
		if (data.size() != width * height * pixSize())
			throw Exception("Incorrect data length");
	}