Народ, что вы всех сразу "в дебри" отсылаете? Вполне возможно это куда более простой случай !  
 
   Тут недавно уже похожая тема пробегала...  
 Быстрая отрисовка
 Быстрая отрисовкаСуть, если кратко, в том, что "попиксельно" несмотря на все ухищрения 
медленно будет всегда .
Но есть способы достаточно быстро нарисовать именно то что нужно ...
 Единственное исключение где ПРИХОДИТСЯ работать "попиксельно"  обработка "живого видеопотока" в реальном времени или фильтрация произвольных изображений   .  
Глянь на мой проект 
"Цифровая оптика" . и загляни в модуль   
 "UCanny.pas"
 "UCanny.pas"(Хорош тем что ничего внешнего не нужно ) и посмотри как там фильтры устроены . (Возможно скорости хватит ...  разумеется обработку нужно производить на "теневом битмапе", а на Timage кидать например через  
BitBlt   )
Для более сложных (в плане скоростной обработки) случаев например есть  библиотека OpenCV ... ( в моем проекте OpenCV  тоже используется но пока в качестве дополнительных и  "экспериментальных   функций " )
Зы 
Простые логические операции умеет 
BitBlt (хотя придется повозится с "подбором логики" ,  но если сработает то лучше способа найти трудно!  

  )
Зы Зы 
Кстати в UCanny.pas есть вот что ... 
- Код: Выделить всё
- procedure Blend2(Const Src1,Src2,Dst: TBitmap; CT: Integer;Amount: extended);
 var w,h,x,y:integer;
 ps1,ps2,pd:pbytearray;
 begin
 w:=Src1.Width;
 h:=Src1.Height;
 
 for y:=0 to h-1 do begin
 ps1:=Src1.ScanLine[y];
 ps2:=Src2.ScanLine[y];
 Dst.BeginUpdate; ;
 pd:=Dst.ScanLine[y];
 for x:=0 to w-1 do
 If RGB(ps2[x*3+2],ps2[x*3+1],ps2[x*3])<>CT then
 begin
 If ABS(Amount-1)>=0.09   then begin
 pd[x*3]  :=round((1-Amount)*ps1[x*3]+Amount*ps2[x*3]);
 pd[x*3+1]:=round((1-Amount)*ps1[x*3+1]+Amount*ps2[x*3+1]);
 pd[x*3+2]:=round((1-Amount)*ps1[x*3+2]+Amount*ps2[x*3+2]);
 end else
 begin
 Move(ps2[x*3], pd[x*3],3);
 end
 end else Move(ps1[x*3], pd[x*3],3);
 Dst.EndUpdate;
 end;
 end;
 

 Это именно "прозрачность" то есть "смешение" .  но все очень легко упростит до смешения "по ключевому цвету"
При размере кадра 640х480х24 без видимых тормозов работает в "риал тайм" на достаточно чахлом ноте (+ там еще видео с камеры и модель в OpenGL ).