我在QPixmap / QImage中加载PNG图像,我想裁剪它。是否有一个功能在Qt中执行,或者我应该怎么做呢?
答案 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()函数即可。
本文是阅读关于您的静止的第一条评论的结果:
有时最好环绕图像。也就是说,使图像成为另一图像的一部分,或者换言之,指向另一图像的一部分。这是包装图像除了其标题之外不需要额外内存的方式。您可以放心地显示或保存包装的图像。缺点是原始图像必须保持有效,直到您使用包装图像,如果您正在绘制包装图像,它将影响源。