2011-08-10 96 views

回答

30

您可以使用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); 
3

由于您使用的QPixmap,您可以使用它copy method并用QRect其提供给执行实际的作物。

2

只使用QPixmap的copy()函数。

本文是读你的quiestion第一条评论结果:

有时,最好是环绕的图像。那就是让图像成为另一幅图像的一部分,换句话说就是指向另一幅图像的一部分。这是包装图像不需要额外的内存,除了它的标题。您可以显示或保存包装图像,而不用担心。缺点是原始图像必须保持有效,直到您使用包装图像,同样如果您在包装图像中绘制,它将影响源。

25

QImage的使用代替的QPixmap:

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

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

+0

您可以使用'QPixmap'完成相同的操作;另外,如果你从一个'QPixmap'开始,'QPixmap'具有'toImage()'并且希望它成为'QImage'。你可以这样做:'QImage copy = pixmap.copy(0,0,128,128).toImage();' –