Подтвердить что ты не робот

Как обрезать изображение в Qt?

Я загружаю PNG-изображение в QPixmap/QImage, и я хочу его обрезать. Есть ли функция, которая делает это в Qt, или как это сделать в противном случае?

4b9b3361

Ответ 1

Вы можете использовать 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);

Ответ 2

Используйте QImage вместо QPixmap:

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

Этот код сохранит файл, отрезанный в верхнем левом углу 128x128px.

Ответ 3

Поскольку вы используете QPixmap, вы можете использовать метод копирования и предоставить его QRect для выполнения фактического урожая.

Ответ 4

Просто используйте функции copy() QPixmap.

Этот текст является результатом чтения первого комментария к вашему запросу:

Иногда лучше обертывать изображение. То есть иметь изображение, которое является частью другого изображения, или, другими словами, указывает на часть другого изображения. Это способ, которым обернутое изображение не требует дополнительной памяти, кроме заголовка. Вы можете отображать или сохранять обернутое изображение без забот. Недостатком является то, что исходное изображение должно оставаться в силе до тех пор, пока вы не используете обернутое изображение, также если вы рисуете обернутое изображение, это повлияет на источник.