Fix Qt screenhot crash (#889)

This commit is contained in:
Murat Seker 2020-07-22 16:46:43 +02:00 committed by GitHub
parent 126c18e003
commit 21b0b3f2ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 2 deletions

View File

@ -136,7 +136,9 @@ public:
void toRgb(ImageData<ColorRgb>& image)
{
image.resize(_width, _height);
if (image.width() != _width || image.height() != _height)
image.resize(_width, _height);
const unsigned imageSize = _width * _height;
for (unsigned idx = 0; idx < imageSize; idx++)

View File

@ -101,6 +101,7 @@ int QtGrabber::grabFrame(Image<ColorRgb> & image)
QPixmap originalPixmap = _screen->grabWindow(0, _src_x, _src_y, _src_x_max, _src_y_max);
QPixmap resizedPixmap = originalPixmap.scaled(_width,_height);
QImage imageFrame = resizedPixmap.toImage().convertToFormat( QImage::Format_RGB888);
image.resize(imageFrame.width(), imageFrame.height());
for (int y=0; y<imageFrame.height(); ++y)
for (int x=0; x<imageFrame.width(); ++x)

View File

@ -60,7 +60,9 @@ void ImageResampler::processImage(const uint8_t * data, int width, int height, i
// calculate the output size
int outputWidth = (width - _cropLeft - cropRight - (_horizontalDecimation >> 1) + _horizontalDecimation - 1) / _horizontalDecimation;
int outputHeight = (height - _cropTop - cropBottom - (_verticalDecimation >> 1) + _verticalDecimation - 1) / _verticalDecimation;
outputImage.resize(outputWidth, outputHeight);
if (outputImage.width() != outputWidth || outputImage.height() != outputHeight)
outputImage.resize(outputWidth, outputHeight);
for (int yDest = 0, ySource = _cropTop + (_verticalDecimation >> 1); yDest < outputHeight; ySource += _verticalDecimation, ++yDest)
{