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

نسخة كاملة : تحويل صورة إلى نص
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
ما نوع هذا النص .؟
وكيف يمكن تحويل صورة إلى نص على هذا الشكل
لقد حاولت أن اقوم بتحويل الصورة إلى نص ولكن النتيجة كانت على هذا الشكل :

PHP كود :
‰PNG

   
IHDR   1   
&   â-نh   sRGB ®خé   gAMA  ±ڈüa    cHRM  z&  €„  ْ   €è  u0  ê`  :ک  pœ؛Q<   ‚IDATXGيکر
€ يے?ْ²|3ءI®éqل¶i¯Sڈˆ(ظVُ”m•l†®ï¦'D*çTjâ—Tچ‰¶yZ{µغ´‍¦ًنؤ:GNrjْكل´إ†َd‍جس›M‹}اhةINî}ةTvےl³“*P‘ô<5أ<پjغ%ق«0ؤrْ.§[ً±ڑ
$س    IEND®B`‚ 

والمثال في المرفقات
ربما لم يكن سؤالي واضح
كيف يمكن تحويل الصورة إلى نص كما في الصورة التالية :
كود :
http://www5.0zz0.com/2015/01/24/20/422098075.jpg

والمثال مرفق في المشاركة الاولى وجزاكم الله عنا خير الجزاء
اضن الكود مشفر ب base64


PHP كود :
const
  
Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';

function 
Encode64(S: string): string;
var
  
i: Integer;
  
a: Integer;
  
x: Integer;
  
b: Integer;
begin
  Result 
:= '';
  
a := 0;
  
b := 0;
  for 
i := 1 to Length(s) do
  
begin
    x 
:= Ord(s[i]);
    
b := b * 256 + x;
    
a := a + 8;
    while 
a >= 6 do
    
begin
      a 
:= a - 6;
      
x := b div (1 shl a);
      
b := b mod (1 shl a);
      
Result := Result + Codes64[x + 1];
    
end;
  
end;
  if 
a > 0 then
  begin
    x 
:= b shl (6 - a);
    
Result := Result + Codes64[x + 1];
  
end;
end;

function 
Decode64(S: string): string;
var
  
i: Integer;
  
a: Integer;
  
x: Integer;
  
b: Integer;
begin
  Result 
:= '';
  
a := 0;
  
b := 0;
  for 
i := 1 to Length(s) do
  
begin
    x 
:= Pos(s[i], codes64) - 1;
    if 
x >= 0 then
    begin
      b 
:= b * 64 + x;
      
a := a + 6;
      if 
a >= 8 then
      begin
        a 
:= a - 8;
        
x := b shr a;
        
b := b mod (1 shl a);
        
x := x mod 256;
        
Result := Result + chr(x);
      
end;
    
end
    
else
      Exit;
  
end;
end;

 Function 
mFileToStr(Ruta: string): string;
var
sFile: HFile;
uBytes: Cardinal;
begin
sFile
:= _lopen(PChar(Ruta), OF_READ);
uBytes:= GetFileSize(sFile, nil);
SetLength(Result, uBytes);
_lread(sfile, @result[1], uBytes);
_lclose(sFile);
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if not OpenPictureDialog1.Execute then  Exit;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
memo1.text:=Encode64(mFileToStr(OpenPictureDialog1.FileName)) ;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Close 
;
end;


end. 
السلام عليكم
يمكن استخدام Base64 أو UUE/XXE/MIME/...
لم تذكر الهدف من التحويل الى نص ؟ لتخزينها بقياعدة بيانات ؟
السلام عليكم ورحمة الله تعالى وبركاته
هذا هو حل المشكل أخي الكريم onexite بارك الله فيك
من خلال هذا الكود نستطيع تخزين ملفاتنا مشفرة في قاعدة المعطيات
أخي الكريم B.M.AbdelAziZ الهدف من تحويل الملف إلى نص هو من أجل تخزينها في ملف xml
والمثال في المرفقات
شكرا مرة أخرى
بقي لي مشكل واحد في تخزين المعلومات في ملف xml وهو ظهور اللغة العربية على شكل رموز غريبة
وهذا يحدث إن نقلت القيم من قاعدة معطيات (mysql) مثل :
AddChild('Nom').Text := MyQueryNom.value ;
أما ان كتبت النص مباشرة مثل
AddChild('Nom').Text := 'محمد';
فإن المشكل لا يظهر
لا اضن هذا حل مناسب
عليك بنسخ الصورة الى مجلد البرنامج وحفظ مسار الصورة فقط وان استلزم الامر قم بتشفير الصور
السلام عليكم
نعم أخي الكريم أنا لا أستعملها كقاعدة معطيات دائمة من أجل حفظ الصور وإنما كملف حفظ مؤقت من اجل الطباعة فقط ثم يتم حذف الملف

ولكن بقي لي مشكل واحد وهو ظهور اللغة العربية على شكل رموز غريبة في ملف XML

عندما أضع هذا الكود :
كود :
XMLdoc.ChildNodes.Clear; XMLdoc.Version := '1.0'; XMLdoc.Encoding := 'UTF-8'; XMLDoc.StandAlone := 'yes'; with XMLdoc.AddChild('cardObject') do begin AddChild('Nom').Text := Table1Nom.Value ; AddChild('Prenom').Text := Table1Prenom.Value ; AddChild('Adresse').Text := 'الجزائر' ; AddChild('photo').Text := Memo1.Text ; end; XMLdoc.SaveToFile('File1.xml') ;

فإن النتيجة تكون هكذا
كود :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> - <cardObject> [color=Red] <Nom>محمد</Nom> [/color] [color=red] <Prenom>حسان</Prenom> [/color] [color=Lime]<Adresse>الجزائر</Adresse>[/color] <photo>Memo1</photo> </cardObject>
فما هو الحل بارك الله فيكم والمثال في المرفقات
السلام عليكم لماذا لا تستخدم AsString بدل من Value
السلام عليكم ورحمة الله تعالى وبركاته
اخي الكريم لقد جربت AsString وAsVariant ولم ينجح الامر
لكن نجح معي حل واحد وان كان مؤقت وهو تحويل إعدادات اللغة والمنطقة في لوحة التحكم إلى العربية حيث تظهر اللغة العربية سليمة في ملف xml
بارك الله في الجمبع