Конференция "Media" » Скриншот рабочего стола [D7]
 
  • margarinov © (07.08.12 22:59) [0]
    Добрый вечер,форумчане.
    Подскажите,пожалуйста,с реализацией следующего алгоритма.

    Делаю скриншот рабочего стола,делаю его копию,которую перевожу в оттенки серого  и вывожу в Image. Надо: сделать выделение части изображения рамкой и вставлять в область выделения кусок цветного скриншота при перемещении мыши.
    Скриншот черно-белый,выделение цветное.
    Затык в том, как быстрее и грамотней копировать часть цветного скриншота поверх черно-белого с учетом координат и перемещения мыши.
  • antonn © (08.08.12 00:07) [1]
    координаты вывода рамки помнишь ведь, вот по ним через bitblt и выводи кусок (либо через canvas.copyrect())
  • margarinov © (08.08.12 01:42) [2]
    Это да,но если область уменьшается,значит изображение надо как-то стирать.
    Или быть может проще в цикле обесцвечивать пиксели вне выделенной области? Но опять же,как тогда возвращать цвет пикселям,которые вышли из области выделения?
  • brother © (08.08.12 07:12) [3]
    ты не понял: у тебя есть 2 версии изображения: цветное и чб, так?
    теперь создаем третье изображение, на котором будем рисовать:
    сначала копируем на него все чб, затем, копируем область выделенную рамкой с цветного...
  • antonn © (08.08.12 12:22) [4]
    если выводится черно-белое, то можно обойтись только им и цветным. после нанесения цветного на ч-б сделать этот кусок ч-б и нарисовать цветное в другом месте, экономим по памяти и операциям
  • brother © (09.08.12 06:58) [5]
    если изменений после копирования цветного более не предвидится, то да...
  • margarinov © (09.08.12 12:11) [6]
    Да,все так. Но всеравно не могу добится нормальной работы.
    Либо "тормоза",либа жуткое мерцание. Если есть возможность,скиньте,плз,рабочий пример кода.

    З.Ы. Подозреваю,что для скорости можно как-то Накладывать тем же XOR старую область выделения на новую и работать только с разницей.
  • brother © (09.08.12 13:05) [7]
    ты код то покажи уже...
  • margarinov © (10.08.12 15:56) [8]
    Помогите,пожалуйста,замучался уже. Просто с графикой в Delphi почти не работал. Уже и DelphiX ковырял,там вообще мрак :(
  • brother © (15.08.12 08:22) [9]
    [7]?
  • Edgar_Wine (25.09.12 13:37) [10]
    DelphiX лучше не трогайте. Не нужно.

    >> либа жуткое мерцание.

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    DoubleBuffered:=true;
    end;



    Рисовать только в OnPaint(), обновлять после изменения картинки только через Refresh;

    >> Надо: сделать выделение части изображения рамкой и вставлять в область
    >> выделения кусок цветного скриншота при перемещении мыши.

    Расшифровке не поддалось. =(
 
Конференция "Media" » Скриншот рабочего стола [D7]
Есть новые Нет новых   [118655   +16][b:0][p:0.001]