2011-08-10 59 views

Respuesta

30

Puede utilizar QPixmap::copy:

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

Existe también QImage::copy:

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

Puesto que se utiliza QPixmap, puede utilizar su copy method y suministrarla con un QRect para llevar a cabo el cultivo real.

2

Solo uso de las funciones de copia() de QPixmap.

Este texto es resultado de leer el primer comentario en su quiestion:

A veces es mejor para envolver alrededor de una imagen. Es decir, tener una imagen que sea parte de otra imagen o, en otras palabras, señalar una parte de otra imagen. De esta forma, la imagen envuelta no requiere memoria adicional, excepto su encabezado. Puede mostrar o guardar la imagen envuelta sin preocupaciones. La desventaja es que la imagen original debe seguir siendo válida hasta que utilice la imagen envuelta, también si está dibujando en la imagen envuelta afectará a la fuente.

25

Uso QImage en lugar de QPixmap:

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

Este código guardar un archivo cosechado a 128x128px esquina superior izquierda.

+0

Puede usar 'QPixmap' para hacer la misma operación; adicionalmente, 'QPixmap' tiene' toImage() 'si está comenzando desde' QPixmap' y lo quiere como 'QImage'. Puede hacer eso en una línea como tal: 'QImage copy = pixmap.copy (0,0,128,128) .toImage();' –

Cuestiones relacionadas