راه حلی برای لود بهتر و سریع تر تصاویر وجود دارد؟
سلام دوستان وقت بخیر.
من نیاز دارم تصویر کوچکی از یه سری تصاویر ذخیره شده تو مسیر شبکه رو نشون بدوم. اندازه تصویری که قراره نشون بدم 118*118 هست.
ولی خب خودتون بهتر میدونید تو سی شارپ بخواید تصاویر رو نشون بدید با افت شدید سرعت مواجه میشید. مخصوصا تعداد تصاویر اگه بیشتر از 10 تا باشه. حافظه رو هم به شدت پر میکنه.
من با کد زیر هم تست کردم ول باز همون آش و همون کاسه.(کنترل تصاویر به تعداد تصاویر موجود در حافظه در حین اجرا ایجاد میشه.توسط یه حلقه)
Image image = Image.FromFile(AppSeetingClass.GetAppDir() + dataTable.Rows[i]["FileName"].ToString());
Image thumb = image.GetThumbnailImage(120, 120, () => false, IntPtr.Zero);
pictureBox.Image = thumb;
میخواستم بدونم کتابخانه ای چیزی برای جایگزینی هست؟ فقط میخوام یه نمونه کوچیک از تصویر ایجاد بشه.
نقل قول: راه حلی برای لود بهتر و سریع تر تصاویر وجود دارد؟
نقل قول:
نوشته شده توسط
رامین مرادی
سلام دوستان وقت بخیر.
من نیاز دارم تصویر کوچکی از یه سری تصاویر ذخیره شده تو مسیر شبکه رو نشون بدوم. اندازه تصویری که قراره نشون بدم 118*118 هست.
ولی خب خودتون بهتر میدونید تو سی شارپ بخواید تصاویر رو نشون بدید با افت شدید سرعت مواجه میشید. مخصوصا تعداد تصاویر اگه بیشتر از 10 تا باشه. حافظه رو هم به شدت پر میکنه.
من با کد زیر هم تست کردم ول باز همون آش و همون کاسه.(کنترل تصاویر به تعداد تصاویر موجود در حافظه در حین اجرا ایجاد میشه.توسط یه حلقه)
Image image = Image.FromFile(AppSeetingClass.GetAppDir() + dataTable.Rows[i]["FileName"].ToString());
Image thumb = image.GetThumbnailImage(120, 120, () => false, IntPtr.Zero);
pictureBox.Image = thumb;
میخواستم بدونم کتابخانه ای چیزی برای جایگزینی هست؟ فقط میخوام یه نمونه کوچیک از تصویر ایجاد بشه.
پروژه ای که در تاپیک عدم نمایش عکس ها قرار داده بودم رو که لابد دیدید.
کلا برای افزایش سرعت در پردازش تصویر می توانید از Magick.NET-Q8 یا ImageProcessor استفاده کنید ولی برای مواردی که تصویر بزرگی ایجاد می کنید مزیت ایجاد می کنند، نه تصاویر کوچک.
اگه سرعتشون رو با Image.GetThumbnailImage مقایسه کنید، Image.GetThumbnailImage سریعتر از هر دو شون عمل می کنه چون سربار تبدیل به Image و Bitmap ای که اونها دارند رو نداره.
نقل قول: راه حلی برای لود بهتر و سریع تر تصاویر وجود دارد؟
نقل قول:
نوشته شده توسط
رامین مرادی
سلام دوستان وقت بخیر.
من نیاز دارم تصویر کوچکی از یه سری تصاویر ذخیره شده تو مسیر شبکه رو نشون بدوم. اندازه تصویری که قراره نشون بدم 118*118 هست.
ولی خب خودتون بهتر میدونید تو سی شارپ بخواید تصاویر رو نشون بدید با افت شدید سرعت مواجه میشید. مخصوصا تعداد تصاویر اگه بیشتر از 10 تا باشه. حافظه رو هم به شدت پر میکنه.
من با کد زیر هم تست کردم ول باز همون آش و همون کاسه.(کنترل تصاویر به تعداد تصاویر موجود در حافظه در حین اجرا ایجاد میشه.توسط یه حلقه)
Image image = Image.FromFile(AppSeetingClass.GetAppDir() + dataTable.Rows[i]["FileName"].ToString());
Image thumb = image.GetThumbnailImage(120, 120, () => false, IntPtr.Zero);
pictureBox.Image = thumb;
میخواستم بدونم کتابخانه ای چیزی برای جایگزینی هست؟ فقط میخوام یه نمونه کوچیک از تصویر ایجاد بشه.
اگر این کد روی کلاینت اجرا بشه خب منطقی هست که حافظه و زمان زیادی ببره چون تصویر کامل باید به کلاینت منتقل بشه تا بعد تصویر بندانگشتی ساخته بشه. اگر بتونید تصویر بندانگشتی را روی سرور بسازید و ارسال کنید بهتر میشه یا حتی تصاویر بندنگشتی را روی سرور ذخیره(کش) کنید.
از صفحه بندی و نمونه کد the king هم برای تعداد زیاد تصاویر میتونید استفاده کنید
نقل قول: راه حلی برای لود بهتر و سریع تر تصاویر وجود دارد؟
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
اگر این کد روی کلاینت اجرا بشه خب منطقی هست که حافظه و زمان زیادی ببره چون تصویر کامل باید به کلاینت منتقل بشه تا بعد تصویر بندانگشتی ساخته بشه. اگر بتونید تصویر بندانگشتی را روی سرور بسازید و ارسال کنید بهتر میشه یا حتی تصاویر بندنگشتی را روی سرور ذخیره(کش) کنید.
از صفحه بندی و نمونه کد
the king هم برای تعداد زیاد تصاویر میتونید استفاده کنید
نمونه کد ایشون رو موقع دانلود ویروس میشناسه :افسرده: نتونستم دانلود کنم.
پس یعنی موقع کپی تصویر تو سرور یه نمونه بند انگشتی هم براش ایجاد کنم تا حداقل برای بهبود این عملیات ازش استفاده کنم؟(حجم هم برام مساله شده و به مرور زمان این حجم زیاد میشه.فعلا حدود 90 گیگ هست.) و برای اینکه همزمان تصاویر زیادی لود نشه از صفحه بندی استفاده کنم و با ترکیب این دوتا بتونم نتیجه مورد قبولتری بگیرم.(خودم این روش رو به بقیه پیشنهاد میدم فقط چون تعداد تصاویر نسبتا کم هستن تو گروه ها برا همین سعی کردم استفاده نکنم )
فقط یه مسئله من موقع نمایش تصاویر پیکجر باکس رو در زمان اجرا ایجاد میکنم. بهتره به تعداد محدود این کنترل رو روی فرم بزارم یا همون موقع اجرا ایجاد کنم؟ تو روش دوم بحث از بین بردن کلاس های بلا استفاده هم پیش میاد که خب اونم یه کم دردسر میشه.
نقل قول: راه حلی برای لود بهتر و سریع تر تصاویر وجود دارد؟
نقل قول:
نوشته شده توسط
رامین مرادی
نمونه کد ایشون رو موقع دانلود ویروس میشناسه :افسرده: نتونستم دانلود کنم.
پس یعنی موقع کپی تصویر تو سرور یه نمونه بند انگشتی هم براش ایجاد کنم تا حداقل برای بهبود این عملیات ازش استفاده کنم؟(حجم هم برام مساله شده و به مرور زمان این حجم زیاد میشه.فعلا حدود 90 گیگ هست.) و برای اینکه همزمان تصاویر زیادی لود نشه از صفحه بندی استفاده کنم و با ترکیب این دوتا بتونم نتیجه مورد قبولتری بگیرم.(خودم این روش رو به بقیه پیشنهاد میدم فقط چون تعداد تصاویر نسبتا کم هستن تو گروه ها برا همین سعی کردم استفاده نکنم )
فقط یه مسئله من موقع نمایش تصاویر پیکجر باکس رو در زمان اجرا ایجاد میکنم. بهتره به تعداد محدود این کنترل رو روی فرم بزارم یا همون موقع اجرا ایجاد کنم؟ تو روش دوم بحث از بین بردن کلاس های بلا استفاده هم پیش میاد که خب اونم یه کم دردسر میشه.
خیلی تفاوتی نداره که در زمان اجرا PictureBox میسازید یا نه، مهم اینه که وقتی دیگه لازمشون ندارید و میخواهید حذف شون کنید Dispose کردن یادتون نره. اگر Dispose شدن انجام بشه در زمان اجرا هم بسازید مشکلی پیش نمیاد.