Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
typePRGBTripleArray = ^TRGBTripleArray; TRGBTripleArray = array
[0..32767] of
TRGBTriple; ///////////////////////////////////////////////// // Fade In // ///////////////////////////////////////////////// procedure
FadeIn(ImageFileName: TFileName); var
Bitmap, BaseBitmap: TBitmap; Row, BaseRow: PRGBTripleArray; x, y, step: integer; begin
// Bitmaps vorbereiten / Preparing the Bitmap // Bitmap := TBitmap.Create; try
Bitmap.PixelFormat := pf32bit; // oder pf24bit / or pf24bit // Bitmap.LoadFromFile(ImageFileName); BaseBitmap := TBitmap.Create; try
BaseBitmap.PixelFormat := pf32bit; BaseBitmap.Assign(Bitmap); // Fading // for
step := 0 to
32 do
begin
for
y := 0 to
(Bitmap.Height - 1) do
begin
BaseRow := BaseBitmap.Scanline[y]; // Farben vom Endbild holen / Getting colors from final image // Row := Bitmap.Scanline[y]; // Farben vom aktuellen Bild / Colors from the image as it is now // for
x := 0 to
(Bitmap.Width - 1) do
begin
Row[x].rgbtRed := (step * BaseRow[x].rgbtRed) shr
5; Row[x].rgbtGreen := (step * BaseRow[x].rgbtGreen) shr
5; // Fading // Row[x].rgbtBlue := (step * BaseRow[x].rgbtBlue) shr
5; end
; end
; Form1.Canvas.Draw(0, 0, Bitmap); // neues Bild ausgeben / Output new image // InvalidateRect(Form1.Handle, nil
, False); // Fenster neu zeichnen / Redraw window // RedrawWindow(Form1.Handle, nil
, 0, RDW_UPDATENOW); end
; finally
BaseBitmap.Free; end
; finally
Bitmap.Free; end
; end
; ///////////////////////////////////////////////// // Fade Out // ///////////////////////////////////////////////// procedure
FadeOut(ImageFileName: TFileName); var
Bitmap, BaseBitmap: TBitmap; Row, BaseRow: PRGBTripleArray; x, y, step: integer; begin
// Bitmaps vorbereiten / Preparing the Bitmap // Bitmap := TBitmap.Create; try
Bitmap.PixelFormat := pf32bit; // oder pf24bit / or pf24bit // Bitmap.LoadFromFile(ImageFileName); BaseBitmap := TBitmap.Create; try
BaseBitmap.PixelFormat := pf32bit; BaseBitmap.Assign(Bitmap); // Fading // for
step := 32 downto
0 do
begin
for
y := 0 to
(Bitmap.Height - 1) do
begin
BaseRow := BaseBitmap.Scanline[y]; // Farben vom Endbild holen / Getting colors from final image // Row := Bitmap.Scanline[y]; // Farben vom aktuellen Bild / Colors from the image as it is now // for
x := 0 to
(Bitmap.Width - 1) do
begin
Row[x].rgbtRed := (step * BaseRow[x].rgbtRed) shr
5; Row[x].rgbtGreen := (step * BaseRow[x].rgbtGreen) shr
5; // Fading // Row[x].rgbtBlue := (step * BaseRow[x].rgbtBlue) shr
5; end
; end
; Form1.Canvas.Draw(0, 0, Bitmap); // neues Bild ausgeben / Output new image // InvalidateRect(Form1.Handle, nil
, False); // Fenster neu zeichnen / Redraw window // RedrawWindow(Form1.Handle, nil
, 0, RDW_UPDATENOW); end
; finally
BaseBitmap.Free; end
; finally
Bitmap.Free; end
; end
; procedure
TForm1.Button1Click(Sender: TObject); begin
FadeIn('C:TestImage.bmp') end
; {*****************************} {by Yucel Karapinar, ykarapinar@hotmail.com } { Only for 24 ve 32 bits bitmaps } procedure
FadeOut(const
Bmp: TImage; Pause: Integer); var
BytesPorScan, counter, w, h: Integer; p: pByteArray; begin
if
not
(Bmp.Picture.Bitmap.PixelFormat in
[pf24Bit, pf32Bit]) then
raise
Exception.Create('Error, bitmap format is not supporting.'); try
BytesPorScan := Abs(Integer(Bmp.Picture.Bitmap.ScanLine[1]) - Integer(Bmp.Picture.Bitmap.ScanLine[0])); except
raise
Exception.Create('Error!!'); end
; for
counter := 1 to
256 do
begin
for
h := 0 to
Bmp.Picture.Bitmap.Height - 1 do
begin
P := Bmp.Picture.Bitmap.ScanLine[h]; for
w := 0 to
BytesPorScan - 1 do
if
P^[w] > 0 then
P^[w] := P^[w] - 1; end
; Sleep(Pause); Bmp.Refresh; end
; end
; procedure
TForm1.Button2Click(Sender: TObject); begin
FadeOut(Image1, 1); end
;