كيف يتم تمثيل الخطوط على شكل 0 و 1؟
#1
السلام عليكم ورحمة الله وبركاته

ماهي الفكرة التي تتم بها برمجة برنامج عند كتابة حرف الباء مثلا بالخط Traditional Arabic على سبيل المثال يحوله إلى matrix عبارة على 0و1 هكذا

0000000000
0000000000
0100000010
0111111110
0000100000
0000000000
0000000000
0000000000
الرد
#2
السلام عليكم

إحدى الأفكار أن نقوم بطباعة الحرف بلون معين في صورة تكون خلفيتها بلون مخالف،
ثم قراءة الصورة نقطة نقطة (Pixel)، فالنقطة التي هي بلون الحرف تقرأ (1) و النقطة بلون الخلفية تقرأ (0).

المثال التالي يعبر عن الفكرة.
تكون لدينا شاشة = فورم بها :
1- Edit1 لنكتب فيه الأحرف المراد قراءتها
2 – Memo1 لعرض النتائج، ويستحسن أن كون الخط فيه من نوع Courier New
وأن تكون ألواح التحريك ظاهرة Memo1.ScrollBars = ssBoth
3- Button1 نضع في حدث الضغط عليه التعليمات التالية:


PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
  
Bitmap: TBitmap;
  
s: string;
  
sRow: string;
  
ARect: TRect;
  
X, Y: integer;
  
TextWidth, TextHeight: integer;
begin
  s 
:= Edit1.Text;
  
Memo1.Clear;

  
Bitmap := TBitmap.Create;
  try
    
Bitmap.Canvas.Font.Assign(Edit1.Font);

    
TextWidth := Bitmap.Canvas.TextWidth(S);
    
TextHeight := Bitmap.Canvas.TextHeight(S);
    
ARect := Rect(0, 0, TextWidth - 1, TextHeight - 1);

    
Bitmap.Width := TextWidth;
    
Bitmap.Height := TextHeight;

    
Bitmap.Canvas.Brush.Color := 0;
    
Bitmap.Canvas.FillRect(ARect);

    
Bitmap.Canvas.Font.Color := clWhite;
    
Bitmap.Canvas.TextOut(0, 0, s);

    for 
Y := 0 to ARect.Bottom  do
    
begin
      sRow 
:= '';
      for 
X := 0 to ARect.Right do
      
begin
        
if Bitmap.Canvas.Pixels[x, y] = 0 then
          sRow 
:= sRow + '.'
        
else
          
sRow := sRow + '#';
      
end;
      
Memo1.Lines.Add(sRow);
    
end;
  finally
    
//Image1.Picture.Assign(Bitmap);
    
Bitmap.Free;
  
end;

end; 

إذا أردنا رؤية محتويات الصورة التي رسمناها يمكن إدراج مكون Image1 وتخصيص الصورة له:
PHP كود :
Image1.Picture.Assign(Bitmap); 
الرد
#3
وعليكم السلام
جزاك الله خيرا أخي shagrouni سأحاول فهم الكود ولكن ماذا تقصد بعرض محتويات الصورة ؟
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم