
مكتبة الضغط وإزالة الضغط والترميز في BASE64.
يتم تنفيذه في لغة دلفي ، ويستخدم مفهوم الواجهة بطلاقة لتوجيه استخدام المكتبة.
تم تطوير المكتبة باستخدام فئات الضغط الأصلي وإزالة الضغط (ZLIB) وترميز Delphi Base64.
Base64 : الضغط الأساسي والترميز وفك التشفير الأساسي وفك التشفير وإزالة الضغط.
Data : ضغط البيانات وفئة الضغط.
تم تنفيذ خوارزمية الضغط:
DeflateGZipملاحظة: تقوم الوظائف دائمًا بإرجاع MD5 قبل الترميز و MD5 بعد الترميز ، والتي يمكن استخدامها للتأكد من فك ترميز نص معين بشكل صحيح والتحقق من التحقق من MD5 الذي تم إنشاؤه قبل الترميز.
إطار الضغط وإلغاء الضغط مع خيار ترميز BASE64.
ضغط النص:
ضغط الصورة
صورة نقطية
PNG ، JPG
لقد عانت أنواع الملفات هذه بالفعل من عملية ضغط في إنشائها ، ونتيجة ضغط جديد ليست مهمة للغاية.
في التطبيق التجريبي ، هناك مثال على ضغط صورة PNG التنسيق ، حيث بلغ مجموعها 42،436 بايت:
خوارزمية الضغط: انحراف
باستخدام Boss (مدير التبعية لـ Delphi) ، من الممكن تثبيت المكتبة تلقائيًا.
boss install github.com/antoniojmsjr/ZLibFramework
Project> Options> Delphi Compiler> Target> جميع التكوينات> مسار البحث
..ZLibFrameworkSource
uses ZLibFramework, ZLibFramework.Types; var
lResultCompress: IZLibResult;
lMsgError: string;
begin
try
lResultCompress := TZLib
.Base64
.Compress
.Deflate
.Level(TZLibCompressionLevelType.Max)
.Text( ' 1234567890 ' );
Application.MessageBox(PWideChar(lResultCompress.TextUTF8), ' C O M P R E S S Ã O ' , MB_OK + MB_ICONINFORMATION);
except
on E: EZLibException do
begin
lMsgError := Concat(lMsgError, Format( ' Mode: %s ' , [E.Mode.AsString]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Operation: %s ' , [E.Operation.AsString]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Algorithm: %s ' , [E.Algorithm.AsString]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Encoding Fail: %s ' , [BoolToStr(E.EncodingFail, True)]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Message: %d ' , [E.Message]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Hint: %s ' , [E.Hint]));
Application.MessageBox(PWideChar(lMsgError), ' A T E N Ç Ã O ' , MB_OK + MB_ICONERROR);
end ;
on E: Exception do
begin
Application.MessageBox(PWideChar(E.Message), ' A T E N Ç Ã O ' , MB_OK + MB_ICONERROR);
end ;
end ;
end ;
ZLibFramework هو برامج مجانية ومفتوحة المصدر مرخصة بموجب