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

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`‚ 

والمثال في المرفقات


الملفات المرفقة
.rar   image to txt.rar (الحجم : 2.38 ك ب / التحميلات : 22)
الرد
#2
ربما لم يكن سؤالي واضح
كيف يمكن تحويل الصورة إلى نص كما في الصورة التالية :
كود :
http://www5.0zz0.com/2015/01/24/20/422098075.jpg

والمثال مرفق في المشاركة الاولى وجزاكم الله عنا خير الجزاء
الرد
#3
اضن الكود مشفر ب 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. 
الرد
#4
السلام عليكم
يمكن استخدام Base64 أو UUE/XXE/MIME/...
لم تذكر الهدف من التحويل الى نص ؟ لتخزينها بقياعدة بيانات ؟
الرد
#5
السلام عليكم ورحمة الله تعالى وبركاته
هذا هو حل المشكل أخي الكريم onexite بارك الله فيك
من خلال هذا الكود نستطيع تخزين ملفاتنا مشفرة في قاعدة المعطيات
أخي الكريم B.M.AbdelAziZ الهدف من تحويل الملف إلى نص هو من أجل تخزينها في ملف xml
والمثال في المرفقات
شكرا مرة أخرى


الملفات المرفقة
.rar   Xml.rar (الحجم : 2.19 ك ب / التحميلات : 16)
الرد
#6
بقي لي مشكل واحد في تخزين المعلومات في ملف xml وهو ظهور اللغة العربية على شكل رموز غريبة
وهذا يحدث إن نقلت القيم من قاعدة معطيات (mysql) مثل :
AddChild('Nom').Text := MyQueryNom.value ;
أما ان كتبت النص مباشرة مثل
AddChild('Nom').Text := 'محمد';
فإن المشكل لا يظهر
الرد
#7
لا اضن هذا حل مناسب
عليك بنسخ الصورة الى مجلد البرنامج وحفظ مسار الصورة فقط وان استلزم الامر قم بتشفير الصور
الرد
#8
السلام عليكم
نعم أخي الكريم أنا لا أستعملها كقاعدة معطيات دائمة من أجل حفظ الصور وإنما كملف حفظ مؤقت من اجل الطباعة فقط ثم يتم حذف الملف

ولكن بقي لي مشكل واحد وهو ظهور اللغة العربية على شكل رموز غريبة في ملف 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>
فما هو الحل بارك الله فيكم والمثال في المرفقات


الملفات المرفقة
.rar   XML ARAB.rar (الحجم : 2.34 ك ب / التحميلات : 11)
الرد
#9
السلام عليكم لماذا لا تستخدم AsString بدل من Value
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#10
السلام عليكم ورحمة الله تعالى وبركاته
اخي الكريم لقد جربت AsString وAsVariant ولم ينجح الامر
لكن نجح معي حل واحد وان كان مؤقت وهو تحويل إعدادات اللغة والمنطقة في لوحة التحكم إلى العربية حيث تظهر اللغة العربية سليمة في ملف xml
بارك الله في الجمبع
الرد


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


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