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

نام تاپیک: بهترین راه ذخیره عکس در DataBase

  1. #1

    بهترین راه ذخیره عکس در DataBase

    سلام خدمت تمام دوستام عزیز
    من با استفاده از اسکنر یک عکس رو اسکن می کنم و بعد با استفاده از این کد اونو توی دیتا بیس ذخیره می کنم:
    MemoryStream MS = new MemoryStream();
    pictureBox1.Image.Save(MS, pictureBox1.Image.RawFormat);
    PicByte = MS.GetBuffer();
    MS.Close();
    cmd.Parameters.Clear();
    cmd.CommandText = "INSERT INTO S_Attached_File(ArNum, AtchFile, FileTitle,ArYear)" +
    " VALUES(" + Convert.ToInt32(ArNumtextBox.Text) + ", @AtchFile_,'"+
    AttachtextBox.Text + "'," + ActiveYearClass.ActiveYear + ")";
    cmd.Parameters.Add(new SqlParameter("@AtchFile_", SqlDbType.Binary)).Value = PicByte;
    dbc.ide(cmd);

    مشکلی که داره اینه که حجم عکس خیلی بالا میره و روند ذخیره سازی طولانی میشه! یکی پیشنهاد می کرد که از BMP استفاده نکنم و از Jpg استفاده کنم. اگه این راه درسته چطور باید این کار رو انجام بدم و اگه نه راه درستش چیه ؟
    با تشکر


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تبریز
    پست
    501

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

    اگه خیلی زیاد می شه و تعداد رکورد ها هم بالا میره شما اصلا عکس رو ذخیره نکنین اول اونو تو یه پوشه ذخیره کنین بعد آدرس اونو تو دیتابیس ذخیره کنین شما تصور کنین که 10000تا رکورد باشه با عکس اسکن شده بالای 1 mb یعنی باید به طور متوسط 5000 تا عکس رو در هنگام select بخونه

  3. #3

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

    اما بهتره که این عکس ها توی دیتابیس ذخیره بشن !
    راهی نداره که همونجا ذخیره بشن ولی قبل از ذخیره سازی اونو فشرده کرد ؟


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  4. #4
    کاربر دائمی آواتار adinochestva
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    jre
    پست
    460

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

    از این کد برای تبدیل به jpg استفاده کن


    var qualityEncoder = Encoder.Quality;
    var quality = (long)<desired quality>;
    var ratio = new EncoderParameter(qualityEncoder, quality );
    var codecParams = new EncoderParameters(1);
    codecParams.Param[0] = ratio;
    var jpegCodecInfo = <one of the codec infos from ImageCodecInfo.GetImageEncoders() with mime type = "image/jpeg">;
    bmp.Save(fileName, jpegCodecInfo, codecParams); // Save to JPG



    به جای
    <desired quality> هم کیفیت مورد نظرت رو بزار. هرچه کمتر هجم کمتر

  5. #5
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

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

    نوعت تو بانک از Image به varbinary تغییر بده تو microsft خوندم برای اندازه های بزرگ بهتره دلیلش خودم نمیدونم.
    اگه کیفیت برات مهم نیست به gif تبدیل کن و معمولا عکسو به صورت thumbnail ذخیره میکنند .
    راهکار دوم استفاده از مبحثی به نام Data Lossy که تو برنامه های تحت ویندوز استفاده میشه یعنی میان عکسارو تو db ذخیره میکنند بعد یه database local هم ذخیره میکنند و تو این جدول local فقط یک Id با یه عکس میباشد عکس های که تو بانک Server هست و تو بانک local نیست از Server میاد و یه نسخه در بانک local ذخیره میشه و برای دفعه بعد دیگه از server نمیاد مستقیم از بانک local اطلاعات fetch میشه با این روش تو میتونی ستون های دیگه رو به کاربر نشون بدی و بعد یواش یواش عکس ها رو بهش نشون بدی.

  6. #6

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

    میشه نحوه استفاده کدی که نوشتی رو بگی!
    من اینو کجا و چطور باید استفاده کنم ؟
    ممنون


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  7. #7

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

    کسی نمیدنه چطور باید از این کد استفاده کنیم ؟
    خیلی لازمش دارم


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  8. #8

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

    اینجا یه روش ساده اما کارآمد رو آموزش داده
    امیدوارم بدرد بخوره
    http://www.c-sharpcorner.com/UploadF...4-57832ac98163
    آخرین ویرایش به وسیله مهدی رحیم زاده : جمعه 15 خرداد 1388 در 11:01 صبح دلیل: لینکو یادم رفته بود


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  9. #9
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

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

    راهکار دوم استفاده از مبحثی به نام Data Lossy که تو برنامه های تحت ویندوز استفاده میشه یعنی میان عکسارو تو db ذخیره میکنند بعد یه database local هم ذخیره میکنند و تو این جدول local فقط یک Id با یه عکس میباشد عکس های که تو بانک Server هست و تو بانک local نیست از Server میاد و یه نسخه در بانک local ذخیره میشه و برای دفعه بعد دیگه از server نمیاد مستقیم از بانک local اطلاعات fetch میشه با این روش تو میتونی ستون های دیگه رو به کاربر نشون بدی و بعد یواش یواش عکس ها رو بهش نشون بدی.
    منظورتون همون cache هست؟؟؟
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

  10. #10
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

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

    منظورتون همون cache هست؟؟؟
    میتوان به عنوان cache هم از آن نام برد . با استفاده از این راه ترافیک شبکه به حد بسیار زیادی کاهش میکند .
    نکته : در Server ها معمولا ظرفیت Hard disk بسیار بالاست ولی سمت client محدودیتی بیشتر است .
    معمولا در این گونه مواقع معمولا عکس هایی در db سمت client ذخیره میشوند که جز 500 رکورد آخر هستند .

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

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