Firemonkey (FMX) растровое изображение и цвета

Предположим, у меня есть небольшое растровое изображение в Firemonkey (скажем, 32x24 пикселей). Поэтому я поместил TImage на форму и в конструкторе есть этот код:

  Image1.Bitmap.Create(32, 24);
  if Image1.Bitmap.Canvas.BeginScene then
  try
    Image1.Bitmap.Canvas.Fill.Color := claBlack;
    Image1.Bitmap.Canvas.Stroke.Color := claYellow;
    Image1.Bitmap.Canvas.FillRect(RectF(0,0,32,24), 0, 0, AllCorners, $FF);
    Image1.Bitmap.Canvas.DrawLine(PointF(1,1), PointF(10,10), $FF);
  finally
    Image1.Bitmap.Canvas.EndScene;
    Image1.Bitmap.BitmapChanged;
  end;

Это рисует хорошую диагональную линию на черном фоне.

Теперь я хочу проанализировать растровое изображение, чтобы определить пиксели, на которые влияет рисование линий. Если я делаю базовую попиксельную проверку, используя:

  for y := 0 to 23 do
    for x := 0 to 31 do
      if Image1.Bitmap.Pixels[x,y] <> claBlack then
        memo1.Lines.Add(Format('x=%d. y=%d. c=%x', [x,y,Image1.Bitmap.Pixels[x,y]]));

вывод на мою записку:

x=0. y=0. c=FF3C3C00
x=1. y=0. c=FF3C3C00
x=0. y=1. c=FF3C3C00
x=1. y=1. c=FFE7E700
x=2. y=1. c=FF3C3C00
x=1. y=2. c=FF3C3C00
x=2. y=2. c=FFE7E700
x=3. y=2. c=FF3C3C00
x=2. y=3. c=FF3C3C00
x=3. y=3. c=FFE7E700
x=4. y=3. c=FF3C3C00
x=3. y=4. c=FF3C3C00
x=4. y=4. c=FFE7E700
x=5. y=4. c=FF3C3C00
x=4. y=5. c=FF3C3C00
x=5. y=5. c=FFE7E700
x=6. y=5. c=FF3C3C00
x=5. y=6. c=FF3C3C00
x=6. y=6. c=FFE7E700
x=7. y=6. c=FF3C3C00
x=6. y=7. c=FF3C3C00
x=7. y=7. c=FFE7E700
x=8. y=7. c=FF3C3C00
x=7. y=8. c=FF3C3C00
x=8. y=8. c=FFE7E700
x=9. y=8. c=FF3C3C00
x=8. y=9. c=FF3C3C00
x=9. y=9. c=FFE7E700
x=10. y=9. c=FF3C3C00
x=9. y=10. c=FF3C3C00
x=10. y=10. c=FF3C3C00

так что это интерпретация и "размывание"? моя строка в цветах (обозначенных буквой c) не равна claYellow ($ FFFF00). Если я рисую горизонтальную или вертикальную линию, эффект тот же. Если я изменю свою толщину обводки на 2 и нарисую недиагональную линию, она будет рисоваться в claYellow, но она покрывает 2 пикселя.

Так, как я могу определить & quot; истинно & quot; пиксели, на которые я нарисовал. В приведенном выше примере я бы (мог) искать $ FFE7E700, но как мне узнать, как искать это значение (учитывая, что если бы я нарисовал линию другим цветом, это значение было бы другим). Я пытался увидеть, есть ли "различие" между цветом, который я нарисовал, и фактическим отображенным цветом, но не смог найти его.

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос