我使用Imagemagick将图像加载到qt,然后 我有几个小部件对图像执行各种操作(模糊,黑白,水平等)。每当图像被操纵时,我都会向最终用户展示图像预览。如何在qt中显示图像的预览?
我遇到的问题是,如果例如我应用一些模糊效果(使用horizontalSlider),我不会能够删除它作为对象已被操纵。
这里是我的功能
connect(ui->horizontalSlider_blur, SIGNAL(actionTriggered(int)), this, SLOT(blur(double,int)));
连接,这里是我如何应用效果和更新标签,以显示我的形象
void MainWindow::blur(double factor, int pixels)
{
image.blur(pixels,factor);
image.write(&blob);
imgData = ((char*)(blob.data()));
pixmap.loadFromData(imgData, "XPM");
ui->label->setPixmap(pixmap);
}
会不会是复制图像对象好主意每次我应用效果? 如果是这样,我该怎么做?
什么是操作图像并动态显示预览的最佳实践?
来Qt专家!
伟大的advnice安德鲁,但我说我使用滑块。让我们假设一个场景。我加载一个图像,并通过拉动滑块从0到50应用模糊效果通过滑块如果我决定50是太多,我想把它回到25?我将如何处理图像对象?谢谢! – Sharethefun 2010-11-21 00:56:54
看,当你要创建一个新的效果时,你会复制图像。正好你有两份你的图片(原件和副本)。在滑块的每一步上,您应该重新创建或更新最后一个状态(原始图像)的副本并对其应用效果(副本)。我认为这是唯一的方法,因为正确应用效果,您应该始终拥有清晰的图像。 – Andrew 2010-11-21 09:16:17