如何在Qt中裁剪图像?

时间:2011-08-10 12:15:37

标签: image qt crop

我在QPixmap / QImage中加载PNG图像,我想裁剪它。是否有一个功能在Qt中执行,或者我应该怎么做呢?

4 个答案:

答案 0 :(得分:38)

您可以使用QPixmap::copy

QRect rect(10, 20, 30, 40);
QPixmap original('image.png');
QPixmap cropped = original.copy(rect);

还有QImage::copy

QRect rect(10, 20, 30, 40);
QImage original('image.png');
QImage cropped = original.copy(rect);

答案 1 :(得分:26)

使用QImage而不是QPixmap:

    QImage image("initial_image.jpg");
    QImage copy ;
    copy = image.copy( 0, 0, 128, 128); 
    copy.save("cropped_image.jpg");

此代码会将裁剪的文件保存到左上角128x128px。

答案 2 :(得分:4)

由于您使用了QPixmap,因此您可以使用其copy method并为其提供QRect来执行实际裁剪。

答案 3 :(得分:2)

只需使用QPixmap的copy()函数即可。

本文是阅读关于您的静止的第一条评论的结果:

有时最好环绕图像。也就是说,使图像成为另一图像的一部分,或者换言之,指向另一图像的一部分。这是包装图像除了其标题之外不需要额外内存的方式。您可以放心地显示或保存包装的图像。缺点是原始图像必须保持有效,直到您使用包装图像,如果您正在绘制包装图像,它将影响源。