Название: [Решено] Сохранение изображения в файл Отправлено: PulSar.CE3194694 от Август 22, 2010, 11:44 Добрый день! Пытаюсь сохранить изображение в файл на жесткий диск компьютера, но не получается. Читал справку, самоучитель и смотрел программу Screenshot, делал примерно также, но он не хочет сохранять изображение. Создаётся лишь сам файл размером в 4 байта и все. Вот код:
Код
Где здесь ошибка?)) Название: Re: Сохранение изображения в файл Отправлено: kibsoft от Август 22, 2010, 14:19 Исправь на это:
Код: GraphicImage = QPixmap::grabWindow(tabWidget->currentWidget()->winId(), 5, 30, width()-10, height()-85); //Делаю скриншот текущей вкладки на tabWidget'е. Название: Re: Сохранение изображения в файл Отправлено: baka от Август 22, 2010, 17:07 надо просто,
Код: GraphicImage.save(FileName, "PNG", 0); вместо "PNG" можно "JPG" или "JPEG"(я точно не помню). Название: Re: Сохранение изображения в файл Отправлено: PulSar.CE3194694 от Август 22, 2010, 20:51 надо просто, Так вообще он ничего не сохраняет. Даже самого файла на жестком диске не создаётся.Код: GraphicImage.save(FileName, "PNG", 0); вместо "PNG" можно "JPG" или "JPEG"(я точно не помню). Исправь на это: Здесь небольшой прогресс есть, файл теперь ~20КБ, однако он ни просмотрщиком изображений Виндовс, ни Фотошопом не открывается... ХЗ что не так...Код: GraphicImage = QPixmap::grabWindow(tabWidget->currentWidget()->winId(), 5, 30, width()-10, height()-85); //Делаю скриншот текущей вкладки на tabWidget'е. Название: Re: Сохранение изображения в файл Отправлено: Anarion от Август 23, 2010, 01:36 Так вообще он ничего не сохраняет. Даже самого файла на жестком диске не создаётся. Ну если, например сделать так:Код: QPixmap screen = QPixmap::grabWindow(ui->tabWidget->currentWidget()->winId(),5,30,ui->tabWidget->currentWidget()->width()-10,ui->tabWidget->currentWidget()->height()-60); Возможно я что-то не понял, но у вас в вызове: Код: GraphicImage = QPixmap::grabWindow(tabWidget->currentWidget()->winId(), 5, 30, width()-10, height()-85); //Делаю скриншот текущей вкладки на tabWidget'е. Можно использовать следующий код: Код: QPixmap screen = QPixmap::grabWindow(ui->tabWidget->currentWidget()->winId(),5,30,ui->tabWidget->currentWidget()->width()-10,ui->tabWidget->currentWidget()->height()-60); Название: Re: Сохранение изображения в файл Отправлено: Авварон от Август 23, 2010, 08:28 Anarion
когда сохраняете, надо указыать полный путь, включая разрешение: Код: QString fileName("D:/picture.png"); Название: Re: Сохранение изображения в файл Отправлено: PulSar.CE3194694 от Август 23, 2010, 09:38 Можно использовать следующий код: Спасибо! Этот код помог! Теперь все без проблем сохраняет. С размерами видимой части изображения разберусь))Код: QPixmap screen = QPixmap::grabWindow(ui->tabWidget->currentWidget()->winId(),5,30,ui->tabWidget->currentWidget()->width()-10,ui->tabWidget->currentWidget()->height()-60); А как, интересно, делать, если использовать QFile и QDataStream? Название: Re: Сохранение изображения в файл Отправлено: Anarion от Август 23, 2010, 12:06 Anarion когда сохраняете, надо указыать полный путь, включая разрешение: Код: QString fileName("D:/picture.png"); Сам пользуюсь предложенным мною далее в том же сообщении варианте. Этот код я привел для проверки. Просто неясно, какие значения, кроме 0, может принимать параметр format в методе Код: bool QPixmap::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const Код: QString fileName("D:/picture.png"); Название: Re: Сохранение изображения в файл Отправлено: Авварон от Август 23, 2010, 12:13 читайте доку внимаетльно. Никто не запрещает сохранить жпег файл с расширением .bmp
Название: Re: Сохранение изображения в файл Отправлено: PulSar.CE3194694 от Август 24, 2010, 07:50 А как, интересно, делать, если использовать QFile и QDataStream?
Название: Re: Сохранение изображения в файл Отправлено: kibsoft от Август 24, 2010, 14:06 Цитировать А как, интересно, делать, если использовать QFile и QDataStream? Кстати, скорее всего никак..т.к. они сохраняют именно объект QPixmap, а QPixmap::Save сохраняет именно картинку.Т.е. в первом случае, при открытии этого файла, мы можем вернуть обратно QPixmap себе с помощью >> оператора. Сериализация вроде называется.. |