الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

توليد الصور

مغلق
بدأه @hmed في 11 مايو 2005 · 16 رد · 1,210 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي سؤال للأخوة

الصورة في ملف الdfm تخزن على الشكل التالي

Picture.Data = {

0A544A504547496D616765BF680800FFD8FFE000104A46494600010101006000

600000FFFE0017437265617465642077697468205468652047494D50FFDB0043

0001010101010101010101010101010101010101010101010101010101010101

0101010101010101010101010101010101010101010101010101010101010101

01FFDB0043010101010101010101010101010101010101010101010101010101

فهل ممكن نقوم بكريتت الصور و عرضها و ذلك بتخزينها في ملفات على الشكل الذي إحنا شيفينه

و هذا سيكسبننا مكانا كبيرا خاصتا للمبرمجين الذين يعتمدون على عرض الصور من خارج البرنامج

#2

السلام عليكم و رحمة الله

لدي طريقة ممكن جدا أن توفر لنا الكثير من المكان في مكان تخزين الصور و كثيرا من الجهد و الوقت

باستعمال مكونات ZTVcompress and ZTV decompress يمكننا ضغط الصورة و استرجاعها عند الحاجة و توفر هذه المكونات الكثير من أنماط الضغط ك ZIP و RAR حيث يمكن حمايتها با ستعمال كلمة السر.

#3

السلام عليكم إيه ده يجماعه مفيش أي حد بيرد و الأيام ده انا ملاحظ غختفاء عروه و إيكوسان

خير إن شاء الله

#4

أستسمح على هذا الغياب. :( .

الصورة في DFM هي مخزنة بطريقة بيناري كما هي في ملف الصورة, وهي نفس طريقة التخزين في الملف التنفيذي.

فديلفي سيقوم بتخزين الفورم كلها بكل ما تحتويه من صور في ملف الموارد الذي سيجمع في النهاية بعد التصريف في ملف تنفيذي نهائي.

هذه العملية لا تخضع لخواريزميات الضغط ك Zip أو Rar.

لهذا يجب استعمال صور مضغوطة مسبقا بتقنيات أفضل مثل Jpeg أو Gif ويفضل عدم استعمال BMP لأنها ستأخذ حيز أكبر مما سيجعل الملف التنفيذي أكبر حجما.

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#5

شكرا لردك أخي مراد

المراد القول ان هناك برامج مثل reshaker تستطيع منه التغير في ال DFM يعني التغير ممكن فهل ممكن نولد الصورة بالتغيير يعني إحنا نحفظ النص المبين في اول مشاركة فقط ومن ثم نعوضه بآخر

#6

يمكنك أن تغير ما تشاء في الفورم بواسطة محرر موارد مثل ResHacker أو Restorator...

فديلفي تخزن الفورم على شكل ملف نصي Text وهو بالضبط ملف DFM , ثم تقوم بإرفاقه مع الملف التنفيذي على شكل موارد للتطبيق من صنف RCDATA تسميها بنفس إسم الفورم مثلا ك Tform1.

object Form2: TForm2
  Left = 0
  Top = 0
  Width = 489
  Height = 221
  Caption = 'Form2'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -13
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 120
  TextHeight = 16
  object Label1: TLabel
    Left = 146
    Top = 133
    Width = 12
    Height = 40
    Caption = '-'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -33
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label2: TLabel
    Left = 302
    Top = 133
    Width = 24
    Height = 40
    Caption = '='
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -33
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Button1: TButton
    Left = 160
    Top = 72
    Width = 137
    Height = 41
    Caption = 'calculate'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Edit1: TEdit
    Left = 16
    Top = 144
    Width = 121
    Height = 24
    TabOrder = 1
    Text = 'Edit1'
  end
  object Edit2: TEdit
    Left = 176
    Top = 144
    Width = 121
    Height = 24
    TabOrder = 2
    Text = 'Edit2'
  end
  object Edit3: TEdit
    Left = 336
    Top = 144
    Width = 121
    Height = 24
    TabOrder = 3
    Text = 'Edit3'
  end
end

سيظهر لك جليا كل المركبات المرئية للفورم مع جميع الخصائص التي قمت بضبطها للمتحكمات.

أضف إلا ذلك حتى الصور, يمكنك استبدال محتواها بصور أخرى يكفي أن تستبدل الأسطر التي تلي

Picture.Data = {

بالصورة التي تناسبك.

أرجو ان أكون قد فهمت قصدك من هذا السؤال :D

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#7

والله هذا ماكنت أبحث عنه بس إزاه أغير محتوى الصورة هذا مالم تجبني عنه لأن ماقلته أنا أعرفه ولكن تغير الصورة للأسف لم أتوصل لمعرفتها

فهل ممكنت تساعدني

#8

:lol:

أمهلني يا أخي بعض الوقت فعندي مجموعة من المشاغل وبعض المشاكل في العمل ارجو أن تؤول إلى خير بإذن الله.

فزياراتي للموقع قليلة وخاطفة.

الموضوع الذي ذكرت جربته من قبل وقد استبدلت صورا بأخرى باستعمال Reshacker فهو برنامج قوي لقرائة وتغيير الموارد سواءا كانت ملفات موارد rc.* أو ملفات موارد مصرفة res.* أو ملفات مكتبات الربط الديناميكي dll.* او الملفات التنفيذية exe.*...

إضافة أنه برنامج مجاني,يقابله برنامج تجاري وهو Restorator.

الصور مكتوبة بHEX وما عليك إلا أن تغيرها باستعمال محرر لل Hex. حتى ديلفي يستطيع فتح الملفات على أنها ملفات Hex.

فما يبقى عليك سوى نقل ثم لصق الكود للصورة التي تريدها مكان الصورة الأصلية في الملف التنفيذي.

B)

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#9

انا عاوز من غير مغير في الملف التنفيذي شيئ يعني وة البرنامج مفتوح اعملها على العموم مش مشكلة اعطني الكود الذي استعمله

ووفقك الله في عملك

#10

هل تريد تغييرTIMAGE.PICTURE بصورة معينة عند الحاجة

#11

هقلك أنا الآن

أنا عاوز أعمل مكتبة صور و عاوز أخزنها في داتا بيز على الشكل إلي لاحظته إنته في الأول إلي هي الأرقام الموضحة في ملفات DFM و استدعيها عندما يضغط المستعمل على Next يعني لما يحب يعرضها

فهمتوني الآن

#12

عليك ب TimageList فهي أفضل من أم تستعمل DATABase أو أن تخزن الصور بطريقة DFM

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#13

يا إيكوسان باشا أنا أريد خاصية التوليد لإن ال Image liste إن ملأت بالصور ستبطئ البرنامج في الفنح

#14

إن كنت قد فهمت سؤالك تريد انجاز slide لصور

1-تقوم بتخزين الصور فيمجلد معين أو في قاعدة بيانات وتقنيات التخزين تختلف حسب حجم الكلي لصور

2-تسمبة الصور تسمية ترتيبية مثلا image001,image002,image003....... و هذا الترتيب سيسمح لنا بابحار بسهولة و مرونة...

3-باستعمال TIMAGE

image1.Picture.LoadFromFile

و هكذا ستتغير الصورة حسب الحاجة

يمكنك الا طلاع كنت قد كتبته في DELPHI3000

#15

اخي عبد الحفيظ انا أبحث عن توليد الصورة من النصوص المبينبة في picture.data وذلك فهل تستطيع مساعدتي انا أي طريقة أخرى فلن تنفعني مثل هته

#16

ألوووووووووووووووووووووووووووووو

timage list لن تنفع

و image.picture.loadfilefrom أيضا لن تنفع انا إلي أريده إني أحمل النصوص إلى صور و هي النصوص التي تكون في ملف ال DFM في Picture.data

هل فهمتو عليا الآن

تحياتي

#17

السلام عليكم ورحمة الله

اخى @hmed

استخدم الاتى

(image1.Picture.Bitmap.LoadFromStream(TStream

(image1.Picture.Bitmap.SaveToStream(TStream

حيث ( TStream )يمكن تعريفه على عن انه واحد من الآتى

(TFileStream (for working with files

(TStringStream (for manipulating in-memory strings

(TMemoryStream (for working with a memory buffer

(TBlobStream (for working with BLOB fields وهذا افضلهم حيث يمكن تعريف حقل من قاعدة البيانات على انه BLOB او Binary وعن طريق هذا الكود يمكن القراءه او الكتابه كما تريد.. ويمكنه ايضا القراءه من Memo وبالتالى يمكن قرأءه الtext على انها صورة او العكس ...

هذا الموضوع مغلق.

مواضيع مشابهة