ما نوع هذا النص .؟
وكيف يمكن تحويل صورة إلى نص على هذا الشكل
لقد حاولت أن اقوم بتحويل الصورة إلى نص ولكن النتيجة كانت على هذا الشكل :
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
بارك الله في الجمبع