On 07.05.2018 21:56, Jason H wrote:
I'm rotating some images by non-90 degree amounts, but when I do, the image
gets filled with a color value (black) for pixels where there is no image data
after rotation, but are in the output image, which causes a problem with later
analysis because it trips edge detection. It would be nice to be able to
control the fill color, or better yet, not have any fill as a result of the
rotate, and just use want's in the image. Ideally, I'd like to pass it a
fillColor (Qt::transparent) so that I can just look at the alpha channel and
ignore pixels with a 0 alpha. How can I accomplish that if I can't select the
color?
I don't know that it's possible to select the rotated rectangle out and draw it
on a transparent image with a QPainter?
QImage rotate(const QImage &image, double degrees){
if (degrees > 0.01 || degrees < -0.01) {
QTransform tx;
QPoint center = image.rect().center();
tx.translate(center.x(), center.y());
tx.rotate(degrees);
return image.transformed(tx, Qt::SmoothTransformation);
} else {
return image;
}
}
The rotated image is filled with transparent pixels for ARGB images. You
can use QPainter compositing to paint that image on any colored
background (or on your original image).
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest