2011-08-10 95 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();' –