PDA

View Full Version : تغيير اندازه عکس



khorsandreza
جمعه 01 آبان 1388, 16:03 عصر
سلام
من در يک برنامه تصوير پرسنل را در بانک ذخيره مي کنم (Borland Interbase) اين تصاوير با سايزها متفاوت اسکن يا عکس برداري ميشن ميخواهم صمن اين که تصاوير با يک اندازه ثابت مثلا77*100 ذخيره بشن و همچنيين . و بتوانم از امکان (واتر مارک) يعني بتوانم مثلا کد پرسنلي را در روي عکس درج کنم

mossaferin
جمعه 01 آبان 1388, 16:21 عصر
راجع به canvas.textout , canvas.copyrect مطالعه کن

behnam_dr
جمعه 01 آبان 1388, 16:27 عصر
سلام
من در يک برنامه تصوير پرسنل را در بانک ذخيره مي کنم (Borland Interbase) اين تصاوير با سايزها متفاوت اسکن يا عکس برداري ميشن ميخواهم صمن اين که تصاوير با يک اندازه ثابت مثلا77*100 ذخيره بشن و همچنيين . و بتوانم از امکان (واتر مارک) يعني بتوانم مثلا کد پرسنلي را در روي عکس درج کنم
دوست عزیزم ، چرا حتما میخواهید که همه رو با یه سایز ذخیره کنید ؟! اگر به خاطر نمایش در یه سایز مطلوب به هنگام پیمایش روی رکوردهاست خوب dbimage خاصیت استریچ داره اونو فعال کنید ...پیروز باشید-بهنام

khorsandreza
جمعه 01 آبان 1388, 16:38 عصر
ببنيد مشکل من دو تا بو شما به قسمت دوم توجه بفرمائيد
ان جائي که از اين نرم افزار استغاده ميکنه اعلام کرده که موقع چاپ کارت شناسائي حتما شماره پرسنلي با رنگ خاصي (طلائي) بر روي کارتها چاپ بشه و ان سخت افزار که ميخواهد چاپ کند به اين شيوه را ميشناسد که حتما واتر مارک بشه و سايز عکس ها 77*100 نهايت 80 *105 باشد لازم به توضيح است
کارتهاي شناسائي از نوع پي وي سي است و دستکاه چاپش خيلي محدود

young_man1365
جمعه 01 آبان 1388, 17:51 عصر
واسه نوشتن واترمارک روی Timage از این کد استفاده کن:


image1.Canvas.Font.Color:=clyellow;
image1.Canvas.TextOut(X,Y,'personnel ID');


بجای X مکان طولی و بجای Y مکان عرضی متن رو بنویس و بجای clyellow اسم با مقدار رنگ رو قرار بده. واسه سایز هم همونطور که دوستمون فرمودند stretch باید مناسب باشه. اگه نمیشه از brushCopy باید استفاده کنی.
موفق باشی

khorsandreza
جمعه 01 آبان 1388, 23:15 عصر
واسه نوشتن واترمارک روی Timage از این کد استفاده کن:


image1.Canvas.Font.Color:=clyellow;
image1.Canvas.TextOut(X,Y,'personnel ID');


بجای X مکان طولی و بجای Y مکان عرضی متن رو بنویس و بجای clyellow اسم با مقدار رنگ رو قرار بده. واسه سایز هم همونطور که دوستمون فرمودند stretch باید مناسب باشه. اگه نمیشه از brushCopy باید استفاده کنی.
موفق باشی

تشکر از لطف دوستان من دقيقا به همين منظور سايز تصوير ميخواهم ثابت باشد جون موقع stretch شکل و شمايل متن تغيير پيدا ميکنه (موقع چاپ) چون من از يک نوع قلم استفاده ميکنم در تصاوير اگر بزگ باشئد متن نوشته شده خيلي کوچک ميشود و بلعکس

khorsandreza
شنبه 02 آبان 1388, 18:02 عصر
سلام:
واقعا کسي در مورد ثابت نمودن سايز عکس نظر يا تجربه خاصي ندارد؟
:متعجب:

young_man1365
چهارشنبه 06 آبان 1388, 10:25 صبح
دوست من همونطور که گفتم ساده ترین راه استفاده از brushcopy هستش. طرز استفادش هم اینجوریه.
اول یه Tbitmap و یه Trect توی برنامه تعریف میکنی و تصویر رو داخل tbitmap لود میکنی و بعد ابعاد TRect رو هم اندازه با ابعاد تصویری که داخل tbitmap هست قرار میدی. نمونه کد:



var
bmp:tbitmap;
rec:Trect;
...
begin
...
bmp:=tbitmap.Create;
bmp.LoadFromFile('c:\1.bmp');
rec:=RECT(0,0,bmp.Width,bmp.Height);
...

حالا باید تصویر رو داخل Timage روی فرم قرار بدی:



image1.Canvas.BrushCopy(RECT(0,0,100,77),bmp,rec,c lwhite);

کد بالا باعث میشه تصویر bmp با حدود تعریف شده روی rec در کد بالایی ، روی image1 با سایز 77*100 نمایش داده بشه. توجه کنید که در این حالت سایز تصویر واقعا" تغییر میکنه و stretch نمیشه

موفق باشید

khorsandreza
چهارشنبه 06 آبان 1388, 23:42 عصر
دوست من همونطور که گفتم ساده ترین راه استفاده از brushcopy هستش. طرز استفادش هم اینجوریه.
اول یه Tbitmap و یه Trect توی برنامه تعریف میکنی و تصویر رو داخل tbitmap لود میکنی و بعد ابعاد TRect رو هم اندازه با ابعاد تصویری که داخل tbitmap هست قرار میدی. نمونه کد:



var
bmp:tbitmap;
rec:Trect;
...
begin
...
bmp:=tbitmap.Create;
bmp.LoadFromFile('c:\1.bmp');
rec:=RECT(0,0,bmp.Width,bmp.Height);
...

حالا باید تصویر رو داخل Timage روی فرم قرار بدی:



image1.Canvas.BrushCopy(RECT(0,0,100,77),bmp,rec,c lwhite);

کد بالا باعث میشه تصویر bmp با حدود تعریف شده روی rec در کد بالایی ، روی image1 با سایز 77*100 نمایش داده بشه. توجه کنید که در این حالت سایز تصویر واقعا" تغییر میکنه و stretch نمیشه

موفق باشید

روش درستي نيست
اولا: فقط فرمت bitmap ميشناسد
دوما: کيفيت تصوير فوق العاده افت ميکند