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

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

25.08.2020, 09:20. Показов 3933. Ответов 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,495
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
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru