View Full Version : سوال: حجم عكس ذخيره شده با كمپوننت imageen
ariobarzan
یک شنبه 06 بهمن 1387, 14:41 عصر
با سلام
من در برنامه از كمپوننت هاي ImageEn براي عكس برداري و ذخيره در بانك SQL
استفاده ميكنم . مشكل اينه كه حجم بانك با درج عكس هاي اسكن شده خيلي بالا رفته
چطور ميشه رزولوشن عكس و حجم اون را موقع ذخيره سازي تو بانك كم كرد؟
فرمت عكس ها را Jpg تنظيم كردم.
كاربران خيلي باهوشي هم ندارم كه بلد باشند رزولوشن اسكنر را موقع اسكن كردن كم تنظيم كنم بنابراين مجبورم اين كار رو درون برنامه تنظيم كنم
با تشكر
اصغر (پآچ)
سه شنبه 08 بهمن 1387, 00:41 صبح
سلام دوست من
شما مي توني بعد از اسكن كردن عكس ها و قبل از ذخيره سازي اونها توي بانكت با استفاده از يه فايل Temp نوع عكس هاي اسكن شده رو از BMP به JPG تغيير بدي چون با تغيير پسوند فايل حجم اونها كم نميشه و همون فرمت bmp باقي مي مونه!
با اين روش حجم عكسا تا حجم قابل ملاحظه اي پايين مياد (حدودا زير 300 كيلوبايت) اگه دستور تغيير فرمت عكس رو خواستي يا پيدا نكردي بگو برات بذارم!
موفق و مويد باشي
ariobarzan
سه شنبه 08 بهمن 1387, 07:26 صبح
با تشكر از توجه شما
آيا با set كردن گزينه dataFieldImageFormat روي ifjpeg اين كار انجام نميشه؟
(جزء خصوصيات ImageEnDbView هستش)
اصغر (پآچ)
سه شنبه 08 بهمن 1387, 14:21 عصر
سلام دوست من
من با ImageEn کار نکردم اما شما برو یکی از عکسهایی که اسکن کردی رو توی هارد دیسک ذخیره کن اگه حجم عکس اسکن شده در حدود 2.5 مگا بایت باشه اون گزینه فقط کیفیت عکس رو در حالت Jpg قرار میده و حجمشو تغییری نمیده و پسوند عکس های شما همون Bmp باقی میمونه اما نه اگه حجم عکس اسکن شده زیر 300 کیلو بایت باشه این گزینه عمل میکنه
اگه کاری از دستم بربیاد من درخدمتم
موفق و موید باشید
mostafaharvest
پنج شنبه 17 بهمن 1387, 23:42 عصر
سلام
شما میتونی با کد به صورت مستقیم DPI اسکنر رو هر قدر بخوای تنظیم کنی.حتی میتونی عمق رنگ عکس رو هم کم کنی یا عکس اسکن شده ای رو که مثلا توی پنجره ImageEn نمایش داده میشه رو تغییر اندازه و بعد ذخیرش کنی . کافیه از دستورات زیر استفاده کنی:
تغییر دادن DPI در محور x ها و Y ها :
ImageEnIo.TWainParams.YResolution.CurrentValue:=15 0;
ImageEnIo.TWainParams.XResolution.CurrentValue:=15 0;
این قسمت میتونه مقادیر مختلفی رو با توجه به اسکنر داشته باشه.هر رو مقدار مساوی باشند.
------------------------------------------------------------------------------------------
تغییر دادن عمق عکس :
ImageEnIO..TWainParams.BitDepth.CurrentValue:=16;
این قسمت میتونه مقادیر استاندارد 8 و 16 و 24 و 32 رو داشته باشه.البته 32 پیشنهاد نمیشه.
------------------------------------------------------------------------------------------------
تغییر دادن نوع اسکن عکس:
ImageEnIO..TWainParams.PixelType.CurrentValue:=2;
مقدار 0 برای سیاه و سفید ، 1 برای خاکستری ، 2 برای رنگی
------------------------------------------------------------------------------------------------
عدم نمایش صفحه اسکنر و اسکن مستقیم و نمایش در ImageEn
ImageEnIO..TWainParams.VisibleDialog:=False;
-------------------------------------------------------------------------------------------
عدم نمایش پروگرس بار :
ImageEnIO..TWainParams.ProgressIndicators:=False;
--------------------------------------------------------------------------------------------
در نهایت نیز اسکن کردن عکس :
ImageEnIO..Acquire(ieaTWain);
-----------------------------------------------------------------------------
سپس بعد از نمایش عکس در صفحه ImageEn تغییر اندازه آن با کد ImageSize برای کاهش حجم ولی بهتره DPI رو به جای این گزینه استفاده کنید.
موفق باشید: لبخند:: لبخند:: لبخند:: چشمک:: چشمک:: چشمک:: چشمک::
تشویق:: تشویق:: تشویق:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.