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

نام تاپیک: ذخیره بک گراند فرم در تنظیمات برنامه

  1. #1

    ذخیره بک گراند فرم در تنظیمات برنامه

    سلام
    من دو تا عکس دارم که برای پلیر هستش یه عکس mini و عکس اصلی main
    که در Resources هستش میخوام بعد از بستن برنامه عکسی که به عنوان بک گراند هست را ذخیره کنم
    یعنی هروقت فرم mini بود عکس mini و هر وقت main بود main ذخیره بشه
    تا اینجا میدونم که موقع لود و بستن فرم عکس باید تبدیل به string بشه
    و داخل تنظیمات برنامه (Settings) ذخیره و بازیابی میشه توسط دو تابع زیر
    GetStringFromImage
    GetImageFromString
    یه دکمه برای رفتن به mini که روی فرم main
    chekform(true)
    یه دکمه برای رفتن به main که روی فرم mini
    chekform(false)
    قرار دارند
    موقع لود
    string imageform = Properties.Settings.Default.imageform

    chekform(Properties.Settings.Default.chekminiform)که روی هر کدام بود اون عکس ذخیره میشه
    اینم بگم فقط روی یه فرم هستش


    public static string GetStringFromImage(Image image)
    {
    if (image != null) {
    ImageConverter ic = new ImageConverter();
    byte[] buffer = (byte[])ic.ConvertTo(image, typeof(byte[]));
    return Convert.ToBase64String(buffer, Base64FormattingOptions.InsertLineBreaks);
    } else {
    return null;
    }
    }
    public static Image GetImageFromString(string base64String)
    {
    if (string.IsNullOrWhiteSpace(base64String))
    return null;
    byte[] buffer = Convert.FromBase64String(base64String);
    if (buffer != null) {
    ImageConverter ic = new ImageConverter();
    return ic.ConvertFrom(buffer) as Image;
    } else {
    return null;
    }
    }
    private void chekform(bool chek)
    {
    if (chek) {
    Background = My.Resources.mini;
    minichek = chek;
    } else if (chek == false) {
    Background = My.Resources.main;
    minichek = chek;
    } else if (Background == null) {
    minichek = false;
    imageform = GetStringFromImage(My.Resources.main);
    Background = GetImageFromString(imageform);
    }
    this.BackgroundImage = Background;
    this.BackgroundImageLayout = ImageLayout.None;
    this.Region = MakeRegion(Background);
    this.Size = new Size(Background.Width, Background.Height);
    }
    private System.Drawing.Region MakeRegion(Bitmap skinBmp)
    {
    if (skinBmp == null)
    return null;
    Region fullRegion = null;
    Region lineRegion = new Region();
    Color transparentColor;
    bool inLine = false;
    int startLineX = 0;
    transparentColor = skinBmp.GetPixel(0, 0);
    for (int y = 0; y <= skinBmp.Height - 1; y++)
    {
    for (int x = 0; x <= skinBmp.Width - 1; x++)
    {
    if (skinBmp.GetPixel(x, y).ToArgb == transparentColor.ToArgb)
    {
    if (inLine)
    {
    inLine = false;
    lineRegion = new Region(new Rectangle(startLineX, y, x - startLineX, 1));
    if (fullRegion == null)
    {
    fullRegion = lineRegion;
    }
    else
    {
    fullRegion.Union(lineRegion);
    }
    }
    }
    else
    {
    if (!inLine)
    {
    inLine = true;
    startLineX = x;
    }
    }
    }
    }
    return fullRegion;
    }


    آخرین ویرایش به وسیله xxnagin : شنبه 18 بهمن 1393 در 22:36 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    0x111530EF - 0x11657DA
    پست
    873

    نقل قول: ذخیره بک گراند فرم در تنظیمات برنامه

    متوجه نشدم سوال هست یا آموزش...
    اگر سواله مشکل کجاست؟ توی ذخیره و نگه داری؟ : شما جای ذخیره کردن Base64String عکس بیا فقط اسم عکس رو ذخیره کنید موقع لود هم با همون اسم عکس لود کنید :

    My.Resources.ResourceManager.GetObject("min-or-max")

  3. #3

    نقل قول: ذخیره بک گراند فرم در تنظیمات برنامه

    سواله
    روش دیگه هم وجود داره یا نه ؟
    من اینو نگفتم ببخشید
    موقع طراحی در اصل عکسی وجود نداره یعنی
    یعنی قبل از لود اگر عکسی وجود نداشت خودش خودکار عکس پیشفرض را main باشه
    و مقدار chekform (Properties.Settings.Default.chekminiform) که false پیشفرض هستش main بکگراند بشه
    حالا مشکل اینجاست که چون Properties.Settings.Default.chekminiform =false هستش نرمال باید فرم لود بشه
    و خطا میگیره
    از این کد هم استفاده کردم
    if this.BackgroundImage =null
    } chekform=false;
    this.BackgroundImage =Properties.Resources.main

    {
    آخرین ویرایش به وسیله xxnagin : یک شنبه 19 بهمن 1393 در 14:38 عصر

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

  1. سوال: ذخیره تنظیمات برنامه
    نوشته شده توسط abasfar در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: دوشنبه 24 مرداد 1390, 14:04 عصر
  2. حرفه ای: ذخیره تنظیمات برنامه و گرفتن نسخه پشتیبان از تنظیمات-بهترین روش
    نوشته شده توسط arash020 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: شنبه 27 شهریور 1389, 00:56 صبح
  3. محل ذخیره تنظیمات برنامه
    نوشته شده توسط saed2006 در بخش C#‎‎
    پاسخ: 13
    آخرین پست: سه شنبه 22 دی 1388, 08:33 صبح
  4. چگونه تنظیمات برنامه خود را ذخیره کنیم
    نوشته شده توسط eberham در بخش VB.NET
    پاسخ: 5
    آخرین پست: یک شنبه 12 فروردین 1386, 18:13 عصر
  5. ذخیره تنظیمات برنامه
    نوشته شده توسط mehdik76 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: چهارشنبه 21 دی 1384, 23:18 عصر

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

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