Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
5 / 5 / 6
Регистрация: 11.04.2015
Сообщений: 69
1

Потеря пикселей при повороте изображение на произвольный угол

14.11.2016, 20:19. Показов 1539. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте. знаю, что данная тема не раз обсуждалась. однако приведённые примеры алгоритмов мне не помогли. в качестве доказательства прикрепляюсь проект (взят отсюда Поворот изображения и дополнен), в котором задействованы различные приёмы поворота изображения на произвольный угол при помощи таких библиотек как Graphics32, GDI+, SetWorldTransform, PlgBlt.
суть задачи - создать конструктор 2D химических формул любой сложности (примерно как здесь - http://www.xumuk.ru/rhf/).
имеется графический приметив n-угольник, обозначающий 2D химическую структурную формулу. требуется повернут приметив на произвольный угол. задача выполняется успешно, если Angle mod 90=0 (90,180,270 etc.). в иных случаях линии, представляющие приметив, искажаются. есть в JEDI компонент JvImageRotate, но он также искажает изображение...
вторая проблема - зазубренные линии.
Буду признателен за помощь.
Вложения
Тип файла: rar RotateImg.rar (8.73 Мб, 11 просмотров)
Тип файла: rar JvRotateImage.rar (765.9 Кб, 6 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2016, 20:19
Ответы с готовыми решениями:

TImageList и разбитый Bitmap или история о повороте BMP на произвольный угол
Вот здесь и начинается сага, дорогой читатель... В общем история такая, я поворачивала bmp...

Как убрать наслоение при повороте фото на произвольный градус в bitmap?
Необходимо повернуть фото в bitmap на произвольный градус, но при повороте фото накладывается....

Обрезаются иглы при повороте изображения на определённый угол
Добрый день. Помогите, пожалуйста с поворотом. При повороте обрезаются углы изображения. ...

Вывести произвольный треугольник, и осуществить его поворот на произвольный угол и маштабирование
Вывести на экран произвольный треугольник и осуществить операции его поворота на произвольный угол...

4
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
14.11.2016, 20:31 2
Поворот на угол, не кратный 90 градусам всегда сопровождается искажениями информации. Нельзя сделать горизонтальную или вертикальную линию наклонной совершенно безболезненно. Лучшее, что можно сделать -- это использовать субпиксельное сглаживание, тогда будет немного замылено, но без ступенек.

Простейший путь -- увеличить исходное изображение в целое количество раз методом дублирования пикселей, без всякого сглаживания. В этом случае каждый исходный пиксель превратится в 4 или 9 (или 16 и т.д., смотря сколько ресурсов у вас есть) пикселей того же цвета. Увеличенное изображение крутим на произвольный угол, а затем уменьшаем назад, усредняя цвет 4 (9, 16 и т.д.) пикселей назад в один. Последнее можно самому не велосипедить, а взять готовый метод того же GDI+ или другую реализацию уменьшения картинки со сглаживанием.
1
5 / 5 / 6
Регистрация: 11.04.2015
Сообщений: 69
14.11.2016, 20:40  [ТС] 3
А нет ли визуального компонента на основе GDI+ со всеми встроенными фильтрами?
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
14.11.2016, 20:44 4
Не знаю, нужно искать.
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
15.11.2016, 08:32 5
есть библиотеки работы с изображениями типа vampyre
http://galfar.vevb.net/imaging/doc/imaging.html
но общий метод сглаживания именно тот, который указали в #2
копирование большего в меньшее
0
15.11.2016, 08:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2016, 08:32
Помогаю со студенческими работами здесь

Определить изменение потенциальной энергии Ер диполя при повороте его на угол
Диполь с электрическим моментом р =100 пКлм свободно установился в одно-родном электрическом поле...

Определите, какое количество теплоты Q выделится в кольце при его повороте в поле на угол ф=90
Доброе вечер..друзья помогите сделать задачу..а то вообще край..буду признателен Кольцо с...

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

Как сделать, чтобы при повороте вокруг одной из осей учитывался бы угол предыдущего поворота?
Здравствуйте! Сначала я опишу ситуацию, а потом буду жаловаться на проблему:) Я пытаюсь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru