نمایش نتایج 1 تا 3 از 3

نام تاپیک: تغییر سایز عکس قبل از ذخیره در دیتابیس

  1. #1

    Question تغییر سایز عکس قبل از ذخیره در دیتابیس

    سلام دوستان
    من یه برنامه سی شارپی دارم که از دیتابیس sqlite داخلش استفاده می کنم
    برای ذخیره عکس کارمندان از روش زیر استفاده می کنم

    اول با این متد عکس رو تبدیل به byte می کنم و داخل دیتابیس ذخیره می کنم (نوع ستون عکس در دیتابیس رو از نوع blob میگیرم)


    private byte[] ConvertImageToByte(string ImageLocation)
    {
    FileStream fs = new FileStream(ImageLocation, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(fs);
    byte[] picture = null;
    FileInfo fInfo = new FileInfo(ImageLocation);
    long numBytes = fInfo.Length;
    picture = br.ReadBytes(Convert.ToInt32(numBytes));
    return picture;
    }


    برای برگردوندن عکس هم از این متد استفاده میکنم


    ...
    ...
    SQLiteDataReader reader = cmd.ExecuteReader();
    if (reader.Read())
    {
    byte[] picbyte = reader["image"] as byte[] ?? null;
    if (picbyte != null)
    {
    MemoryStream mstream = new MemoryStream(picbyte);
    frame.Image = System.Drawing.Image.FromStream(mstream);
    {
    System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(mstream);
    }
    }
    }


    خب مشکلی هم باهاش ندارم فقط میرسم به بحث سایز عکس
    برای جلوگیری از بالا رفتن حجم دیتابیس میخوام قبل از ذخیره عکس اون رو ریسایز کنم تا نهایتا هر عکس بیشتر از 100 کیلوبایت نشه
    خیلی جستجو کردم چند تا روش دیدم یکی کاهش حجم عکس از طریق quality هست که اون به کارم نمیومد چون مثلا عکسی اگر حجمش 6 مگ باشه ما quality رو 50l بدیم میشه 2 مگ که به درد من نمیخوره
    روش دیگه تغییر سایز عکس هست که اون هم به نتیجه نرسیدم
    ممنون میشم یک راه حلی بفرمایید

    در ضمن اولش فکر کردم هنگام انتخاب عکس سایز رو چک کنم اگر بالاتر از اونی که میخواستم بود خطا بگیرم اما خب اینطوری خود کاربر بره سایز عکس رو دستی تغییر بده که ماشالله کاربرها هم همگی ناشی و کارنابلد هستند پس چه بهتر خودم تغییر سایزش بدم

    ممنون

  2. #2

    نقل قول: تغییر سایز عکس قبل از ذخیره در دیتابیس

    ممنون میشم از دوستان اگر کسی اطلاعاتی داره راهنمایی کنه
    متشکرم

  3. #3
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: تغییر سایز عکس قبل از ذخیره در دیتابیس

    به نظرم همون کاربر رو ملزم به رعایت وارد کردن عکس با حداکثر حجم مجاز بکنید.
    سایتهای ثبت نام رو مشاهده کنید. حالا کاربر بلد یا نابلد هم باشه مجبوره با یه روشی حجم عکس رو کم بکنه. یا خودتونم میتونید یه ادیتور مثلا کراپ کردن عکس یا یه چیزی شبیه اون بسازید و همنجا که عکس رو کاربر میده براش حالت ویرایش عکس هم بزارید. این موردو تو اپلیکشن دیوار من دیدم.

    یه روشی هم اینه که بجای ذخیره خود عکس، اونو تبدیل به base64 کنید و به صورت رشته تو بانک ذخیره کنید. بعد موقع استفاده دوباره تبدیل به عکس کنید و نشون بدید.

    این دوتا لینکم مطالعه کنید
    https://docs.microsoft.com/en-us/dot...pression-level
    و
    https://www.codeproject.com/Question...hile-uploading

تاپیک های مشابه

  1. سوال: سایز معقول دیتابیس
    نوشته شده توسط qhoqnose در بخش Access
    پاسخ: 6
    آخرین پست: سه شنبه 24 اسفند 1389, 12:14 عصر
  2. بدست آوردن سایز تمام دیتابیس های موجود در SQL
    نوشته شده توسط hesam_a110 در بخش SQL Server
    پاسخ: 5
    آخرین پست: چهارشنبه 26 دی 1386, 08:13 صبح
  3. سوال در مورد نحوه آنالایز دیتابیس
    نوشته شده توسط babila در بخش Oracle
    پاسخ: 3
    آخرین پست: سه شنبه 29 آبان 1386, 10:44 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •