-
Добрый вечер,форумчане. Подскажите,пожалуйста,с реализацией следующего алгоритма.
Делаю скриншот рабочего стола,делаю его копию,которую перевожу в оттенки серого и вывожу в Image. Надо: сделать выделение части изображения рамкой и вставлять в область выделения кусок цветного скриншота при перемещении мыши. Скриншот черно-белый,выделение цветное. Затык в том, как быстрее и грамотней копировать часть цветного скриншота поверх черно-белого с учетом координат и перемещения мыши.
-
координаты вывода рамки помнишь ведь, вот по ним через bitblt и выводи кусок (либо через canvas.copyrect())
-
Это да,но если область уменьшается,значит изображение надо как-то стирать. Или быть может проще в цикле обесцвечивать пиксели вне выделенной области? Но опять же,как тогда возвращать цвет пикселям,которые вышли из области выделения?
-
ты не понял: у тебя есть 2 версии изображения: цветное и чб, так? теперь создаем третье изображение, на котором будем рисовать: сначала копируем на него все чб, затем, копируем область выделенную рамкой с цветного...
-
если выводится черно-белое, то можно обойтись только им и цветным. после нанесения цветного на ч-б сделать этот кусок ч-б и нарисовать цветное в другом месте, экономим по памяти и операциям
-
если изменений после копирования цветного более не предвидится, то да...
-
Да,все так. Но всеравно не могу добится нормальной работы. Либо "тормоза",либа жуткое мерцание. Если есть возможность,скиньте,плз,рабочий пример кода.
З.Ы. Подозреваю,что для скорости можно как-то Накладывать тем же XOR старую область выделения на новую и работать только с разницей.
-
ты код то покажи уже...
-
Помогите,пожалуйста,замучался уже. Просто с графикой в Delphi почти не работал. Уже и DelphiX ковырял,там вообще мрак :(
-
[7]?
-
DelphiX лучше не трогайте. Не нужно. >> либа жуткое мерцание. procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:=true;
end; Рисовать только в OnPaint(), обновлять после изменения картинки только через Refresh; >> Надо: сделать выделение части изображения рамкой и вставлять в область >> выделения кусок цветного скриншота при перемещении мыши. Расшифровке не поддалось. =(
|