unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects, FMX.ScrollBox, FMX.Memo;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
var
bd: TBitmapData;
bm:TBitmap;
i,j,cnt:integer;
ac:TAlphaColor;
begin
cnt:=0; // количество
bm:=Image1.MultiResBitmap.Items[0].Bitmap;
bm.Map(TMapAccess.Read, bd);
for i:=0 to bd.Width do
for j:=0 to bd.Height do
begin
ac:=bd.GetPixel(i,j);
if ac=TAlphaColorRec.Red then //4294901760=$FFFF0000
begin
cnt:=cnt+1;
Caption:='i='+i.ToString+',j='+j.ToString+' кол-во='+cnt.ToString;
Sleep(300);
end;
end;
Bm.Unmap(bd);
end;
end.
Использовал TImage, а не TImageViewer (думаю не принципиально). Загрузил картинку, на которой поставлены в графическом редакторе красные точки (цвет FFFF0000).
Склеить два битмапа наверное можно так: http://docwiki.embarcadero.com/CodeExamples/Seattle/en/CreateFromBitmapAndMask_(Delphi)