void ResizeTool::prepareEffect() { if (d->prevW != d->wInput->value() || d->prevH != d->hInput->value() || d->prevWP != d->wpInput->value() || d->prevHP != d->hpInput->value()) { slotValuesChanged(); } ImageIface* iface = d->previewWidget->imageIface(); int w = iface->previewWidth(); int h = iface->previewHeight(); DImg imTemp = iface->getOriginalImg()->smoothScale(w, h, Qt::KeepAspectRatio); int new_w = (int)(w*d->wpInput->value()/100.0); int new_h = (int)(h*d->hpInput->value()/100.0); if (d->useGreycstorationBox->isChecked()) { setFilter(new GreycstorationFilter(&imTemp, d->settingsWidget->settings(), GreycstorationFilter::Resize, new_w, new_h, QImage(), this)); } else { // See B.K.O #152192: CImg resize() sound like defective or unadapted // to resize image without good quality. DImgBuiltinFilter resize(DImgBuiltinFilter::Resize, QSize(new_w, new_h)); setFilter(resize.createThreadedFilter(&imTemp, this)); } }
void ContentAwareResizeTool::prepareEffect() { if (d->prevW != d->wInput->value() || d->prevH != d->hInput->value() || d->prevWP != d->wpInput->value() || d->prevHP != d->hpInput->value()) { slotValuesChanged(); } disableSettings(); ImageIface* iface = d->previewWidget->imageIface(); int w = iface->previewWidth(); int h = iface->previewHeight(); DImg imTemp = iface->getOriginalImg()->smoothScale(w, h, Qt::KeepAspectRatio); int new_w = (int)(w*d->wpInput->value()/100.0); int new_h = (int)(h*d->hpInput->value()/100.0); if (d->mixedRescaleInput->value()<100.0) // mixed rescale { double stdRescaleP = (100.0 - d->mixedRescaleInput->value()) / 100.0; int diff_w = (int)(stdRescaleP * (w - new_w)); int diff_h = (int)(stdRescaleP * (h - new_h)); imTemp.resize(imTemp.width() - diff_w, imTemp.height() - diff_h); } QImage mask; if (d->weightMaskBox->isChecked()) { mask = d->previewWidget->getMask(); } contentAwareResizeCore(&imTemp, new_w, new_h, mask); }
void RainDropTool::prepareEffect() { int drop = d->dropInput->value(); int amount = d->amountInput->value(); int coeff = d->coeffInput->value(); ImageIface* iface = d->previewWidget->imageIface(); // Selected data from the image QRect selection( iface->selectedXOrg(), iface->selectedYOrg(), iface->selectedWidth(), iface->selectedHeight() ); setFilter(new RainDropFilter(iface->getOriginalImg(), this, drop, amount, coeff, &selection)); }