Russian Qt Forum
Март 29, 2024, 14:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Картиночки  (Прочитано 17849 раз)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #15 : Декабрь 14, 2016, 15:31 »

Exception же!

К сожалению, нельзя)
Да и даже std:: предоставляет способ работы без исключений, например, с потоками или процессами.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #16 : Декабрь 14, 2016, 19:37 »

Пустая картинка возвращается в двух случаях - либо была ошибка, либо файл содержит пустую картинку. Как вы эти 2 случаях собираетесь различать?

"Не мы, а вы" Улыбающийся
ImageContents то формируется вашим ридером, сделайте в нем флажок типа bool m_valid, и ставьте его как надо.
Тогда isValid() будет делать return m_valid, и усе.
Мы примерно так реализовали у себя подобный функционал.

Насчёт isValid(). Разделение QString::isEmpty/QString::isNull считается ошибочным и в Qt6 его уберут.

Ну, в случае со строкой действительно не понятно, чем пустая строка от нулевой отличается. В принципе это синонимы.
А для картинок не совсем.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #17 : Декабрь 14, 2016, 19:41 »

Racheengel
Да тоже самое:) Есть пустой контент, есть непустой. А есть отсутствие контента, это либо опшнал (который, к слову, в 17х плюсах будет), либо пара bool, контент.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4724



Просмотр профиля WWW
« Ответ #18 : Декабрь 14, 2016, 23:13 »

можно сделать enum Status из трех значений
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #19 : Декабрь 15, 2016, 09:09 »

- создание файлов *.ico; (требуется для windows приложений)

Да, это один из основных юзкейзов.

- установка прозрачного фона для картинок (постоянно требуется для создания пиктограмм приложений).
На чтении или записи? На чтении сейчас можно сделать QImageReader::setBackgroundColor
На запись - как картинку запишите, так и будет.

Спасибо! Хотелось бы понять как делать это при записи, что-бы модифициировать эту софтинку. И иметь на компе инструмент под рукой.
И хотелось возможности вашей разработки подключить к этому редактору..
ПС. С++11 нет возможности использовать в силу старой операционки.
« Последнее редактирование: Декабрь 15, 2016, 09:12 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #20 : Декабрь 15, 2016, 13:41 »

Спасибо! Хотелось бы понять как делать это при записи, что-бы модифициировать эту софтинку. И иметь на компе инструмент под рукой.
Ну так там просто надо сделать кнопочку "залить прозрачным", это и сейчас можно (если формат поддерживает прозрачность, офк).

ПС. С++11 нет возможности использовать в силу старой операционки.

Ну вообще-то Qt с какой-то версии требует с++11:)
Даже эту софтинку когда собирал пришлось включить с++11, так как Qt ругалось.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #21 : Декабрь 16, 2016, 01:01 »

Ну вообще-то Qt с какой-то версии требует с++11:)
Даже эту софтинку когда собирал пришлось включить с++11, так как Qt ругалось.
эйзипаинт нормально собрался на Qt 4.7.3, а она не требует с++11
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #22 : Декабрь 16, 2016, 01:03 »

Ну так там просто надо сделать кнопочку "залить прозрачным", это и сейчас можно (если формат поддерживает прозрачность, офк).
И как это сделать? применительно к QImage?
Мне просто надо знать как и я это сделаю.
Можно подсказку?
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #23 : Декабрь 16, 2016, 09:45 »

эйзипаинт нормально собрался на Qt 4.7.3, а она не требует с++11

У меня 4ки уже нет года 2.

И как это сделать? применительно к QImage?
Мне просто надо знать как и я это сделаю.
Можно подсказку?

Код:
QImage image(100, 100, QImage::Format_ARGB32);
image.fill(Qt::transparent);
А потом поверх рисуете что надо.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #24 : Декабрь 19, 2016, 18:59 »

И как это сделать? применительно к QImage?
Мне просто надо знать как и я это сделаю.
Можно подсказку?

Код:
QImage image(100, 100, QImage::Format_ARGB32);
image.fill(Qt::transparent);
А потом поверх рисуете что надо.
Благодарствую!
Но тут скорее немного иная задача стоит.
Выбрать цвет и превратить все пиксели этого цвета в цвет прозрачности.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Bepec
Гость
« Ответ #25 : Декабрь 19, 2016, 19:56 »

Код:
for(всё изображение)
{
если (пиксель такой то)
     setPixel(координаты, Qt::transparent);
}
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #26 : Январь 18, 2017, 23:22 »

Обновил кое-чего.
Переименовал ImageIOError->ImageIOResult, а енум из Error в Status (теперь так)
Теперь вместо опшнла возвращается пара<статус операции, контент> (пример). Это позволяет не хранить ошибку мембером ImageIO.
Теперь раздельное чтение хедера и данных выглядит так (раньше надо было просто звать read, он сам определял, звали ли до этого readHeader). Это для того, чтобы ImageIO не хранил header и contents.
Добавил передачу опций на чтение (и написал доку к ним)
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 22.