12 / 12 / 3
Регистрация: 08.01.2016
Сообщений: 79
|
||||||
1 | ||||||
Уменьшение разрешения изображения усреднением без попиксельной обработки в цикле08.05.2017, 14:18. Показов 2076. Ответов 11
Существуют ли в VB.NET встроенные функции уменьшения размера изображения в пикселях через усреднение нескольких пикселей в меньшее число, а не с помощью выбрасывания лишних, как это происходит в следующем коде (порекомендованном в другой теме)
В частности интересует уменьшение в 2 раза, то есть, чтобы каждый квадрат из 4-ёх пикселей усреднялся до одного.
0
|
08.05.2017, 14:18 | |
Ответы с готовыми решениями:
11
Уменьшить массу изображения без изменяя разрешения Уменьшение разрешения, разных изображений Редактор изображений - уменьшение разрешения, обрезка Уменьшение параметров разрешения окна BIOS и установки Windows |
Модератор
4206 / 3289 / 498
Регистрация: 27.01.2014
Сообщений: 6,041
|
|
08.05.2017, 15:53 | 2 |
нужно рисовать в Graphics без сглаживания. должно помочь
0
|
12 / 12 / 3
Регистрация: 08.01.2016
Сообщений: 79
|
|
08.05.2017, 17:21 [ТС] | 3 |
0
|
Модератор
4206 / 3289 / 498
Регистрация: 27.01.2014
Сообщений: 6,041
|
|
08.05.2017, 17:29 | 4 |
ElectricDrive, в теме ни слова, согласен... Но объект Graphics подразумевает рисование. тоесть нанести на свой "холст" вашу картинку с меньшим размером, при этом все преобразования производить без сглаживания пикселей... отсюда и термин "Рисовать"...
Я не знаю другого способа... Подожлем, может кто-то подскажет, как решить впшу задачу другим путем?
0
|
Модератор
4206 / 3289 / 498
Регистрация: 27.01.2014
Сообщений: 6,041
|
||||||
08.05.2017, 18:08 | 5 | |||||
вот о чем я:
Взглянул на картинку вашу и по-моему, как бы вы не старались - у вас не получится идентичная картинка, но в половину меньшим размером... Невозможно сжать пиксель меньше чем он есть... а у вас все линии имеют ширину в 1 пиксель применяя разные интерполяции при уменьшении размера - я не добился того, чтоб картинка была идентична... Даже пробуя в разных редакторах - этого невозможно сделать с ВАШЕЙ картинкой... Возможно и ошибаюсь... Подождем других ответов.
1
|
12 / 12 / 3
Регистрация: 08.01.2016
Сообщений: 79
|
|
08.05.2017, 19:33 [ТС] | 6 |
Идентичная, конечно, не получится. Специально нарисованы линии в 1 пиксель для проверки программы. Должна получится как в приложенном файле. Такую можно получить в окне офис пикчур мэнэджера, но если в нём же сохранить, то опять получается как в первом сообщении: с удалёнными через один, а не усреднёнными, пикселями.
0
|
12 / 12 / 3
Регистрация: 08.01.2016
Сообщений: 79
|
||||||
08.05.2017, 19:53 [ТС] | 7 | |||||
Сделал код с попиксельной обработкой в цикле:
0
|
Модератор
4206 / 3289 / 498
Регистрация: 27.01.2014
Сообщений: 6,041
|
||||||
08.05.2017, 20:08 | 8 | |||||
ну может быть тут более похож будет:
0
|
08.05.2017, 20:29 | 9 | |||||
Для увеличения скорости обработки нужно отказаться от GetPixel/SetPixel, а использовать LockBits/UnlockBits.
0
|
12 / 12 / 3
Регистрация: 08.01.2016
Сообщений: 79
|
|
08.05.2017, 20:34 [ТС] | 10 |
То — что хотел (показано в приложенном файле предыдущего сообщения), но то, что не дают встроенные функции.
Попробую.
0
|
12 / 12 / 3
Регистрация: 08.01.2016
Сообщений: 79
|
|
21.06.2017, 19:08 [ТС] | 12 |
Нашёл редактор, который смог желаемое (уменьшение размера изображения в пикселях через усреднение нескольких пикселей в меньшее число) сделать, — XnView при использовании в нём настройки "Билинейная интерполяция".
(Может кому-то пригодится. В VB.Net ещё буду проверять)
1
|
21.06.2017, 19:08 | |
21.06.2017, 19:08 | |
Помогаю со студенческими работами здесь
12
Увеличение и уменьшение двух переменных в цикле уменьшение изображения Уменьшение изображения Увеличение и уменьшение изображения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |