Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 26.04.2020
Сообщений: 32

Масштабировать изображение, находящееся в буфере

25.08.2020, 09:20. Показов 3992. Ответов 23

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня есть компонент (веб-браузер TChromium), который постоянно выводит изображение в
var buffer: Pointer;
На событии OnPaint копирую этот buffer в буфер TPaintBox32 - на экране получаю изображение, вот так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
  with PaintBox.Buffer do
    begin
      PaintBox.Canvas.Lock;
      Lock;
      try
        Move(buffer^, Bits^, width * height * 4);
        //Paintbox.Canvas.StretchDraw(PaintBox.BoundsRect,
        PaintBox.Invalidate;
      finally
        Unlock;
        PaintBox.Canvas.Unlock;
      end;
    end;
Вопрос: как мне вывести в TPaintBox32 уменьшенное в 2 или 4 раза раза изображение? Желательно без сильной нагрузки на процессор.
Мне подойдёт даже вариант с пропуском 3 пикселей из 4, если такая возможность имеется.
В конечном итоге нужно просто выводить миниатюру на экран.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2020, 09:20
Ответы с готовыми решениями:

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

Масштабировать изображение полученное на canvas
Доброго времени суток, У меня строится фрактал, и суть задачи состоит в том, чтобы можно было масштабировать полученный результат, а...

Как масштабировать фоновое изображение на мобильном устройстве?
Подскажите, как полностью воспроизвести картинку, независимо от размера экрана. Т.е. вписать в маленький экран мобильного телефона. Есть...

23
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
27.08.2020, 06:00
Студворк — интернет-сервис помощи студентам
По границе DWORD. Но это не является обязательным условием.

Добавлено через 1 минуту
Ещё можно попробовать просто посовать ваш указатель в StretchDIBits()...

Добавлено через 1 минуту
Кстати для миниатюр в API вообще есть отдельный набор.

Добавлено через 1 минуту
Можно попробовать выводить с человеческим сглаживанием через какой-нить DirectX (или хотя бы GDI+)...
0
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
27.08.2020, 06:52
Можно попробовать выводить с человеческим сглаживанием через какой-нить DirectX
StretchDIBits умеет в линейную интерполяцию
0
27.08.2020, 13:11

Не по теме:

Если вы про HALFTONE - то недавно уже обсуждали и тестировали - то работает, то нет - в зависимости от непонятно чего...
Да и результаты, мягко говоря, слабенькие... Сильно не уверен что там настоящая честная билинейная...

0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
30.08.2020, 17:29
Вроде, HALFTONE при уменьшении картинки работает всегда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2020, 17:29

Вычислить выражение, находящееся в строковом формате
Всем привет. Я только начинаю изучать С++. И вот на одной из задач я туплю. Попытаюсь объяснить её суть. Есть строка char primer =...

Как посмотреть число, находящееся в регистре?
У меня тяга к хитрым фишкам. Создаю переменную в С++ в студии. Помещаю в нее число. Вижу его адрес. #include <iostream> using...

Найти целое число, находящееся ближе всего от а
Еще одно задание с которым не могу разобраться. Имеются вещественные переменные a:=-2345.78 и b:=1.8351e2; целая переменная...

Как в MS SQL сложить time находящееся в поле char(8)
Подскажите пожалуйста, как в MS SQL сложить время time (00:00:00) находящееся в поле char(8), хорошо чтобы все было запросом. Может...

Определить значение, находящееся перед максимальным и после минимального значения
Здравствуйте, дело в том, что не могу понять что от меня вообще хотят в этом задании и что за код писать: Определить значение,...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru