Qt захватить виджет и сохранить изображениеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Qt захватить виджет и сохранить изображение

Сообщение Anonymous »

У меня следующая проблема. Я хочу получить виджет и сохранить его как изображение. Я хочу сохранить его в формате PNG, JPEG и Tiff. Я написал следующий код:

Код: Выделить всё

QString s =  QFileDialog::getSaveFileName(this, "Save as", "Choose a filename", "PNG(*.png);; TIFF(*.tiff *.tif);; JPEG(*.jpg *.jpeg)");

std::string current_string = s.toLocal8Bit().constData();
//current_string = current_string + ".png";

char * buffer = new char[current_string.length()];
std::string temp = buffer;
char* temp2 = &temp[0];
strcpy(buffer, current_string.c_str());

char* pch = strtok (temp2,".");
pch = strtok (NULL, ".");

if(!QPixmap::grabWindow(m_widget->winId()).save(buffer,pch))
{
QMessageBox::warning(this, "File could not be saved", "ok", QMessageBox::Ok);
}
Это отлично работает на моем ноутбуке. Когда я выполняю установку Visual Studio, она также отлично работает на моем ноутбуке, но когда я устанавливаю ее на другой компьютер, формат PNG работает нормально (сохраняет правильное изображение), но JPEG и TIF ​​не могут быть сохранены. Потом попробовал на другом компе, но там попробовал прямо в Visual Studio с файлом проекта. Там у меня есть все настройки проекта, как на моем компьютере и т. д., но jpeg и tif не работают. PNG работает, но на этом компьютере сохраняется только белое изображение. Далее я также попробовал там установочный файл и это то же самое PNG = белое изображение.

Может кто-нибудь мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/163 ... save-image
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»