20-09-2017, 04:11 AM (آخر تعديل لهذه المشاركة: 20-09-2017, 08:21 AM بواسطة محمد عبد العزيز.)
بسم الله الرحمن الرحيم
انا تابعت دورة الاخ عبدالقادر للصور ولكن فى الدرس السادس فعلت كل شئ تمام ولكن تظهرلى رساله بأن الصورة غير صالحه بالرغم من ان الصورة نفطيه
لذلك أرجو توضيح الخطأ أذا كان برمجى او فى نوع الصورة ووضعت المثال بالكامل فى المرفقات مع الصورة
> مبرمج مبتدئ < سبحان الله بحمده... سبحان الله العظيم
السلام عليكم
جرب ما يلي
ضف متغير مثلا misc كما يلي (انتبه لاخر سطر في الاكواد التالية)
كود :
var
Form1: TForm1;
tms:TMemoryStream;
bmp_file:BMP_HEADER;
ary:array of array of Tthreecolor;
ary_t:array of array of Tthreecolor;
misc:array[1..2]of DWORD;
ثم عدل ما يلي:
كود :
procedure TForm1.write_to_img(img:TImage);
var
i:Integer;
begin
try
tms:=TMemoryStream.Create;
tms.Write(bmp_file,SizeOf(BMP_HEADER));
tms.Write(misc,SizeOf(misc));
وايضا في الزر 3
كود :
procedure TForm1.btn3Click(Sender: TObject);
var
i:Integer;
begin
try
tms:=TMemoryStream.Create;
tms.Write(bmp_file,SizeOf(BMP_HEADER));
tms.Write(misc,SizeOf(misc));
احذف المتغير bmp_file هنا
كود :
procedure TForm1.btn1Click(Sender: TObject);
var
//bmp_file:BMP_HEADER;
حجم الHeader كان 46byte والمتغير Offset كان 54 حيث هناك 8byte ناقصة عند كتابة الصورة
التعديل الذي قمت به مؤقت ليعمل المثال وليس حل انيق
التعامل مع الترويسة Header ناقص كثيرا
اخوك عيد العزيز من الجزائر والاخ عبدالقادر سوري بتركيا.