PDA

Просмотр полной версии : СП307-Р. Проблема с динамическим изображением и не только.



Denis2901
22.06.2022, 09:05
Здравствуйте, проблема в следующем: в конфигураторе панели при загрузке в блок "Динамическое изображение" какой-либо картинки (возможные варианты .bmp и .jpeg) очень сильно проседает качество изображения (огромные пиксели и размытые границы). Пробовал менять разрешение, программы, в которых создается изображение - результата ноль. Как победить проблему?
Также интересен вопрос со вставкой .png с прозрачным фоном. Почему-то вместо картинки Черный или белый квадрат. Каким-то образом можно вставить картинку с прозрачным фоном или это невозиожно?

Евгений Кислов
22.06.2022, 09:17
Добрый день.

1. Выложите, пожалуйста, картинки, с которыми можно воспроизвести эту проблему (в максимально возможном разрешении).

С моей тестовой картинкой (.jpg, разрешение 800x480) артефактов не появляется.

61348

2. .png с прозрачным фоном можно добавить, например, с помощью библиотеки изображений. Но использовать их в элементе Динамическое изображение не получится.
Если вам нужно переключать .png с прозрачным фоном - то добавьте каждую картинку с помощью элемента Анимация, наложите их друг на друга и переключайте биты видимости этих элементов.

61349 61350

Denis2901
22.06.2022, 10:02
Добрый день.

1. Выложите, пожалуйста, картинки, с которыми можно воспроизвести эту проблему (в максимально возможном разрешении).

С моей тестовой картинкой (.jpg, разрешение 800x480) артефактов не появляется.

61348

2. .png с прозрачным фоном можно добавить, например, с помощью библиотеки изображений. Но использовать их в элементе Динамическое изображение не получится.
Если вам нужно переключать .png с прозрачным фоном - то добавьте каждую картинку с помощью элемента Анимация, наложите их друг на друга и переключайте биты видимости этих элементов.

61349 61350

61351
61352
Спасибо, прикладываю

Евгений Кислов
22.06.2022, 10:07
В конфигураторе исходный файл в исходном разрешении (точнее, близком к нему - я поставил 400x400) отображается без существенных изменений.

61353

Но если вы хотите на экране панели отображать картинку в меньшем разрешении (например, 50x50) - то надо ее в таком разрешении и отрисовать, чтобы конфигуратору не приходилось делать масштабирование.
При масштабировании, действительно, могут возникнуть артефакты.

Denis2901
22.06.2022, 10:20
Понял, буду пробовать

Borserg
28.12.2022, 02:38
Следует признать, что работа Конфигуратора с прозрачностью в изображениях реализована отвратительно:

1. При вставке из Библиотеки изображения JPG (галочка "Прозрачность" снята) результат имеет нормальный контур (как у источника) и белый фон.
Это предсказуемо.

64889

2. При вставке того же изображения, но с установленной галочкой "Прозрачность" результат имеет только контур (без фона), но вдоль контура появляются артефакты белого цвета.

64890

А ведь формат JPG не поддерживает прозрачность. Значит Конфигуратор конвертирует исходное изображение?

3. Имеется нормальное изображение PNG с прозрачным фоном.

64891

При вставке этого изображения (галочка "Прозрачность" снята) получаем черный фон. Почему?

64892

При вставке этого же изображения, но с установленной галочкой "Прозрачность" результат ни в какие ворота не лезет. От четкого контура не осталось и следа.

64893

Такое поведение Конфигуратора сильно затрудняет создание мнемосхем.

petera
28.12.2022, 10:51
Следует признать, что работа Конфигуратора с прозрачностью в изображениях реализована отвратительно:

1. При вставке из Библиотеки изображения JPG (галочка "Прозрачность" снята) результат имеет нормальный контур (как у источника) и белый фон.
Это предсказуемо.

64889

2. При вставке того же изображения, но с установленной галочкой "Прозрачность" результат имеет только контур (без фона), но вдоль контура появляются артефакты белого цвета.

64890

А ведь формат JPG не поддерживает прозрачность. Значит Конфигуратор конвертирует исходное изображение?

3. Имеется нормальное изображение PNG с прозрачным фоном.

64891

При вставке этого изображения (галочка "Прозрачность" снята) получаем черный фон. Почему?

64892

При вставке этого же изображения, но с установленной галочкой "Прозрачность" результат ни в какие ворота не лезет. От четкого контура не осталось и следа.

64893

Такое поведение Конфигуратора сильно затрудняет создание мнемосхем.

Поддержка прозрачности формата JPG тут не причем.
При любом формате изображения, конфигуратор "делает прозрачность" путем наложения на исходное изображения битовой маски, имеющей ч/б изображение, где видимая часть - черное, а невидимое(фон) - белое.
При этом маска формируется автоматически, при вкл. галки прозрачность.
Посмотреть вид полученной маски можно в свойствах изображения.
Однако ИИ у конфигуратора нет, по этому маска может быть получена не очень, особенно если исходное изображение имеет полутона.
Например
https://owen.ru/forum/attachment.php?attachmentid=64895&d=1672213387

petera
28.12.2022, 11:03
Итог - хотите иметь качество без артефактов, тогда редактируйте маску сами.
Например
64898

Пример 2
https://owen.ru/forum/attachment.php?attachmentid=64897&d=1672215345

Borserg
28.12.2022, 13:22
Однако ИИ у конфигуратора нет, по этому маска может быть получена не очень, особенно если исходное изображение имеет полутона.


В том то и дело, что исходное изображение исключительно ч/б с четким контуром.

kondor3000
28.12.2022, 14:19
В том то и дело, что исходное изображение исключительно ч/б с четким контуром.

Изображение у вас с тенями изначально, вот попытался в PAINT залить белый фон и получил то же самое. 64902 а это в панели64903

Панель даже лучше обработала, так что рисуйте сами без теней
и размер картинки примерно как будет в панели, тогда всё ок будет.

Borserg
28.12.2022, 15:40
Изображение у вас с тенями изначально, вот попытался в PAINT залить белый фон и получил то же самое.

Все дело в том, что Вы взяли изображение из моего сообщения, в формате PNG. С прозрачностью в этом формате Конфигуратор совсем не дружит.

Попробуйте JPG:64909
Никаких теней в нем нет.

А работать с прозрачностью в JPG можно в этом случае по-разному, например так:

64910

kondor3000
28.12.2022, 15:54
Все дело в том, что Вы взяли изображение из моего сообщения, в формате PNG. С прозрачностью в этом формате Конфигуратор совсем не дружит.
Попробуйте JPG:
Никаких теней в нем нет.


Всё равно есть хоть и гораздо меньше.64911

Borserg
28.12.2022, 16:31
Всё равно есть хоть и гораздо меньше.

Ну что делать, придется мириться.

Но артефакты вносит именно Конфигуратор.

Исходник крупно (никаких серых пикселей): 64912

Результат крупно, с прозрачностью (есть белые пиксели): 64913

kondor3000
28.12.2022, 16:36
Ну что делать, придется мириться.

Но артефакты вносит именно Конфигуратор.

Исходник крупно (никаких серых пикселей):

Вы не поняли, это в Paint скрин опять. Это в вашем исходнике проблемы. Сами проверьте.64914
Если их убрать в Paint, то и в панели всё ОК.

Borserg
28.12.2022, 20:16
Вы не поняли, это в Paint скрин опять. Это в вашем исходнике проблемы. Сами проверьте.

С каким исходником и что именно Вы делаете в Paint?
Я экспериментирую вот с этим: (см. вложение ниже).
В нем нет никаких артефактов. Строго два цвета - черный и белый.

Paint, встроенный в Windows, сам по себе глючит.
Заливка фона в Paint:

64918

То же действие, выполненное в Paint.Net:

64919

Как видите, PaintNet не добавляет лишние пиксели в заливку, а Paint и Конфигуратор - добавляют.
Так что дело не в исходнике, а в кривости алгоритма обработки изображения в самом Конфигураторе.

kondor3000
28.12.2022, 22:17
С каким исходником и что именно Вы делаете в Paint?
Я экспериментирую вот с этим: (см. вложение ниже).
В нем нет никаких артефактов. Строго два цвета - черный и белый.
Заливка фона в Paint:
Так что дело не в исходнике, а в кривости алгоритма обработки изображения в самом Конфигураторе.

Ну так обрежьте и сделайте нужный размер, залейте нужным цветом в Paint.Net и вставьте как картинку в конфигуратор без прозрачности.
Я так и делаю и никаких артефактов нет.
Вот пример, вставлена кнопка с нужным цветом без прозрачности, нет никаких артефактов 64922
Размер сильно увеличен, на самом деле она будет меньше и на живой панели смотрится как настоящая.
Переходов тоже не видно.

Borserg
28.12.2022, 23:47
На самом деле рисунок, который я предоставил - только маленькая часть общей схемы,
которая будет цветная и с наложением нескольких рисунков друг на друга посредством "Динамического изображения", а кое где и "Анимации изображения".
Также на схеме будут цифровые дисплеи в разных местах.
Так что прозрачный фон необходим.
Будем трудиться.

Ryjkoff
20.01.2023, 09:10
С каким исходником и что именно Вы делаете в Paint?
Я экспериментирую вот с этим: (см. вложение ниже).
В нем нет никаких артефактов. Строго два цвета - черный и белый.

Paint, встроенный в Windows, сам по себе глючит.
Заливка фона в Paint:

64918

То же действие, выполненное в Paint.Net:

64919

Как видите, PaintNet не добавляет лишние пиксели в заливку, а Paint и Конфигуратор - добавляют.
Так что дело не в исходнике, а в кривости алгоритма обработки изображения в самом Конфигураторе.

Здравствуйте.
В какой программе вы создаете исходник изображения и каким методом экспортируете?
Подозрение на то, что при экспорте изображение имеет сжатие, от этого и появляются невидимые полутени. WindowsPaint отработал на отлично увидев эти пиксели, а вот paint.net после такого, я бы не стал доверять.
Работаю в CorelDraw при экспорте ни каких проблем.

Borserg
25.01.2023, 18:09
Здравствуйте.
В какой программе вы создаете исходник изображения и каким методом экспортируете?
Подозрение на то, что при экспорте изображение имеет сжатие, от этого и появляются невидимые полутени. WindowsPaint отработал на отлично увидев эти пиксели, а вот paint.net после такого, я бы не стал доверять.
Работаю в CorelDraw при экспорте ни каких проблем.

В данном конкретном случае исходник создавался в специализированной программе для рисования принципиальных схем sPlan 7.0.
Она рисует в векторном формате SVG с возможностью экспорта в GIF, JPG, BMP с выбором разрешения до 300 dpi.
Пробовал и JPG и BMP. Полутона, образующиеся при экспорте вектора в растр убирал вручную в Paint.Net заливкой фона белым и контура черным.
Сейчас посмотрел на свойства файла, который должен быть (после манипуляций с заливкой фона) строго двухцветным - количество цветов 24!
Но отклонение цвета этих пикселей от черного или белого настолько малы, что не видны "невооруженным" глазом.
Все дело оказалось в значении параметра "Чувствительность" при заливке. Он был установлен на 20%.
При установке значения параметра чувствительности в 0% артефакты при вставке картинки в проект пропадают.

Ryjkoff
27.01.2023, 10:32
В данном конкретном случае исходник создавался в специализированной программе для рисования принципиальных схем sPlan 7.0.
Она рисует в векторном формате SVG с возможностью экспорта в GIF, JPG, BMP с выбором разрешения до 300 dpi.
Пробовал и JPG и BMP. Полутона, образующиеся при экспорте вектора в растр убирал вручную в Paint.Net заливкой фона белым и контура черным.
Сейчас посмотрел на свойства файла, который должен быть (после манипуляций с заливкой фона) строго двухцветным - количество цветов 24!
Но отклонение цвета этих пикселей от черного или белого настолько малы, что не видны "невооруженным" глазом.
Все дело оказалось в значении параметра "Чувствительность" при заливке. Он был установлен на 20%.
При установке значения параметра чувствительности в 0% артефакты при вставке картинки в проект пропадают.
Рад, что разобрались.
Но почему вы используете непрофильную программу sPlan? Или вы из её библиотеки достаете схематичные изображения элементов. Тогда уместнее будет ваш SVG открывать в CorelDraw и в нем экспортировать в PNG c включенной прозрачностью. Или воспользоваться бесплатным онлайн конвертером из SVG в PNG.