ايران ويج

نسخه‌ی کامل: Using GetBitmapBits & SetBitmapBits in Delphi
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
استفاده از GetBitmapBits و SetBitmapBits در دلفی

عین همین عنوان رو تو گوگل کلی گشتم ولی موردی پیدا نکردم که دقیقاً توی دلفی و روی یک شیء، تابع SetBitmapBits اعمال شده باشه.
به همین خاطر این مطلب ناقابل رو اینجا میذارم:

کد php:
procedure TForm1.Button1Click(SenderTObject);
var
 
Bits: array of Byte;
 
NewLengthInteger;
begin
 imgOriginal
.Picture.Bitmap.PixelFormat := pfDevice;
 
imgDraw.Width := imgOriginal.Picture.Width;
 
imgDraw.Height := imgOriginal.Picture.Height;
 
imgDraw.Canvas.Create;
 
NewLength := imgOriginal.Picture.Width imgOriginal.Picture.Height 4;
 
SetLength(BitsNewLength);
 
GetBitmapBits(imgOriginal.Picture.Bitmap.HandleNewLengthAddr(Bits[0]));
 
//Modify Bits here;
 
SetBitmapBits(imgDraw.Picture.Bitmap.HandleNewLengthAddr(Bits[0]))
end

جان مطلب توی 4 خط ابتدای برنامه است:
ـ تعیین PixelFormat برای مبدأ
ـ تعیین طول و عرض برای مقصد
ـ مقداردهی اولیه به Canvas مقصد قبل از اعمال SetBitmapBits

مورد آخر (یعنی Initialize کردن Canvas مقصد) رو امروز فهمیدم و کلی شاد شدم.

بین GetBitmapBits و SetBitmapBits هم که باید تغییرات مورد نیاز رو با یک یا چند حلقه ی تکرار روی آرایه مون اعمال کنیم. یعنی RGB رو به طور دلخواه تغییر بدیم.

پ.ن: شیء مبدأ (imgOriginal) حاوی یک تصویر است.