Russian Qt Forum
Март 29, 2024, 10:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
Картиночки
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Картиночки (Прочитано 17846 раз)
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3257
Re: Картиночки
«
Ответ #15 :
Декабрь 14, 2016, 15:31 »
Цитата: Пантер от Декабрь 14, 2016, 15:07
Exception же!
К сожалению, нельзя)
Да и даже std:: предоставляет способ работы без исключений, например, с потоками или процессами.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Картиночки
«
Ответ #16 :
Декабрь 14, 2016, 19:37 »
Цитата: Авварон от Декабрь 14, 2016, 15:06
Пустая картинка возвращается в двух случаях - либо была ошибка, либо файл содержит пустую картинку. Как вы эти 2 случаях собираетесь различать?
"Не мы, а вы"
ImageContents то формируется вашим ридером, сделайте в нем флажок типа bool m_valid, и ставьте его как надо.
Тогда isValid() будет делать return m_valid, и усе.
Мы примерно так реализовали у себя подобный функционал.
Цитата: Авварон от Декабрь 14, 2016, 15:06
Насчёт 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
Сообщений: 3257
Re: Картиночки
«
Ответ #17 :
Декабрь 14, 2016, 19:41 »
Racheengel
Да тоже самое:) Есть пустой контент, есть непустой. А есть отсутствие контента, это либо опшнал (который, к слову, в 17х плюсах будет), либо пара bool, контент.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: Картиночки
«
Ответ #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
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Картиночки
«
Ответ #19 :
Декабрь 15, 2016, 09:09 »
Цитата: Авварон от Декабрь 14, 2016, 13:15
Цитата: panAlexey от Декабрь 13, 2016, 22:43
- создание файлов *.ico; (требуется для windows приложений)
Да, это один из основных юзкейзов.
Цитата: panAlexey от Декабрь 13, 2016, 22:43
- установка прозрачного фона для картинок (постоянно требуется для создания пиктограмм приложений).
На чтении или записи? На чтении сейчас можно сделать
QImageReader::setBackgroundColor
На запись - как картинку запишите, так и будет.
Спасибо! Хотелось бы понять как делать это при записи, что-бы модифициировать эту
софтинку
. И иметь на компе инструмент под рукой.
И хотелось возможности вашей разработки подключить к этому редактору..
ПС. С++11 нет возможности использовать в силу старой операционки.
«
Последнее редактирование: Декабрь 15, 2016, 09:12 от panAlexey
»
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3257
Re: Картиночки
«
Ответ #20 :
Декабрь 15, 2016, 13:41 »
Цитата: panAlexey от Декабрь 15, 2016, 09:09
Спасибо! Хотелось бы понять как делать это при записи, что-бы модифициировать эту
софтинку
. И иметь на компе инструмент под рукой.
Ну так там просто надо сделать кнопочку "залить прозрачным", это и сейчас можно (если формат поддерживает прозрачность, офк).
Цитата: panAlexey от Декабрь 15, 2016, 09:09
ПС. С++11 нет возможности использовать в силу старой операционки.
Ну вообще-то Qt с какой-то версии требует с++11:)
Даже эту софтинку когда собирал пришлось включить с++11, так как Qt ругалось.
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Картиночки
«
Ответ #21 :
Декабрь 16, 2016, 01:01 »
Цитата: Авварон от Декабрь 15, 2016, 13:41
Ну вообще-то Qt с какой-то версии требует с++11:)
Даже эту софтинку когда собирал пришлось включить с++11, так как Qt ругалось.
эйзипаинт
нормально собрался на Qt 4.7.3, а она не требует с++11
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Картиночки
«
Ответ #22 :
Декабрь 16, 2016, 01:03 »
Цитата: Авварон от Декабрь 15, 2016, 13:41
Ну так там просто надо сделать кнопочку "залить прозрачным", это и сейчас можно (если формат поддерживает прозрачность, офк).
И как это сделать? применительно к QImage?
Мне просто надо знать как и я это сделаю.
Можно подсказку?
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3257
Re: Картиночки
«
Ответ #23 :
Декабрь 16, 2016, 09:45 »
Цитата: panAlexey от Декабрь 16, 2016, 01:01
эйзипаинт
нормально собрался на Qt 4.7.3, а она не требует с++11
У меня 4ки уже нет года 2.
Цитата: panAlexey от Декабрь 16, 2016, 01:03
И как это сделать? применительно к QImage?
Мне просто надо знать как и я это сделаю.
Можно подсказку?
Код:
QImage image(100, 100, QImage::Format_ARGB32);
image.fill(Qt::transparent);
А потом поверх рисуете что надо.
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Картиночки
«
Ответ #24 :
Декабрь 19, 2016, 18:59 »
Цитата: Авварон от Декабрь 16, 2016, 09:45
Цитата: panAlexey от Декабрь 16, 2016, 01:03
И как это сделать? применительно к 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
Гость
Re: Картиночки
«
Ответ #25 :
Декабрь 19, 2016, 19:56 »
Код:
for(всё изображение)
{
если (пиксель такой то)
setPixel(координаты, Qt::transparent);
}
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3257
Re: Картиночки
«
Ответ #26 :
Январь 18, 2017, 23:22 »
Обновил кое-чего.
Переименовал ImageIOError->ImageIOResult, а енум из Error в Status (
теперь так
)
Теперь вместо опшнла возвращается пара<статус операции, контент> (
пример
). Это позволяет не хранить ошибку мембером ImageIO.
Теперь раздельное чтение хедера и данных выглядит
так
(раньше надо было просто звать read, он сам определял, звали ли до этого readHeader). Это для того, чтобы ImageIO не хранил header и contents.
Добавил передачу
опций
на чтение (и написал доку к ним)
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...