delphi4arab منتديات دلفي للعرب

نسخة كاملة : خطأ عند تطبيق معالجة الصور الرقمية بلغة دلفي الدرس 6
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم
انا تابعت دورة الاخ عبدالقادر للصور ولكن فى الدرس السادس فعلت كل شئ تمام ولكن تظهرلى رساله بأن الصورة غير صالحه بالرغم من ان الصورة نفطيه
[صورة: 150587649318231.png]
لذلك أرجو توضيح الخطأ أذا كان برمجى او فى نوع الصورة ووضعت المثال بالكامل فى المرفقات مع الصورة
اضف الوحدة jpej في uses
وسيختفي باذن الله
السلام عليكم
جرب ما يلي
ضف متغير مثلا 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;
جرب واخبرنا بالنتيجة
jpeg -- هو التعامل مع الصور النفطية فقط bmp ومع ذلك أضفت الوحده jpeg ونفس المشكلة

بارك الله فيك أخ عبدالقادر ودومت دائماّ لنا

هل فهمت لماذا ؟
اعتقد أنك قمت بوضع فاصل بين الهيدر وجسم الصورة وأذا كان أعتقادى خاطئ أرجو بالتصحيح أذا تكرمت أخى عبدالقادر !! (y)
حجم الHeader كان 46byte والمتغير Offset كان 54 حيث هناك 8byte ناقصة عند كتابة الصورة
التعديل الذي قمت به مؤقت ليعمل المثال وليس حل انيق
التعامل مع الترويسة Header ناقص كثيرا

اخوك عيد العزيز من الجزائر والاخ عبدالقادر سوري بتركيا.
اها شكراّ للتنبيه أخى
فعلاّ الهيدر كان ناقص وكان هو سبب المشكلة قمت بالتعديل
_res5:array[1..6] of dword;
معذرة أختلط عليا الامر فى الاسامى Big Grin