Где ж оно будет переходить если написано:
load_image := alpha.SetOpaque(load_image,
alpha.GetAlphaLevels);?
Во-первых, нужно поставить
i вместо выделенного, во-вторых, картинку каждый раз нужно грузить снова, т.к. он уже после первой обработки не содержит ни одного белого пиксела.
Тогда уж так:
uses alpha;
var load_image,im : image;
im_h, im_w, h, w, ph, pw, i : integer;
begin
load_image := loadImage('/img.png');
h := getHeight;
w := getWidth;
im_w := getImageWidth(load_image);
im_h := getImageHeight(load_image);
(* вычиселение новых координат :) *)
ph := h / 2;
pw := (w / 2) - (im_w / 2);
alpha.SetTransparentColor(255,255,255);
setColor(0, 0, 0);
for i := alpha.GetAlphaLevels downto 0 do
begin
FillRect(0, 0, w, h);
im := alpha.SetOpaque(load_image,I);
DrawImage(im, pw, ph);
repaint;
delay(10);
end;
setcolor(255,255,255);
drawText('Hello world!', 0, 0);
repaint;
delay(2000);
end.