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

نام تاپیک: set كردن رنگ background تصوير با زمينه ي فرم

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    پست
    58

    set كردن رنگ background تصوير با زمينه ي فرم

    سلام ،چگونه رنگ background تصوير را با زمينه ي فرم set كنم(mask)
    من يك برنامه دارد كه مي خواهم چندين تصوير را روي هم قرار دهم ولي چون تصاوير من رنگ پيش زمينه دارند تصاوير زيري قابل مشاهده نيست.
    با تشكر

  2. #2
    کاربر دائمی آواتار ASGGSA
    تاریخ عضویت
    دی 1390
    محل زندگی
    همین نزدیکی ها
    پست
    128

    نقل قول: set كردن رنگ background تصوير با زمينه ي فرم

    سلام.
    به سایت CodeProject یه سری بزنید من لینکش رو گذاشتم. لینک زیر در مورد تابع MaskBlt توضیح داده با این تابع می تونید پس زمینه تصاویرتون که با رنگ خاصی مشخص شدند رو حذف کنید. عضو سایت بشید تا بتونید Example هاش رو دانلود کنید.
    http://www.codeproject.com/Articles/...nt-for-MaskBlt

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    پست
    58

    نقل قول: set كردن رنگ background تصوير با زمينه ي فرم

    من اينجا رفتم ولي چيزي سر در نياوردم !
    اگر به زبان ساده منو راهنمايي كنيد ممنون ميشم.
    بيشتر سورس كدها به زبان C#‎ نوشته شده ولي من دنبال Mfc aplication هستم

  4. #4
    کاربر دائمی آواتار ASGGSA
    تاریخ عضویت
    دی 1390
    محل زندگی
    همین نزدیکی ها
    پست
    128

    نقل قول: set كردن رنگ background تصوير با زمينه ي فرم

    سلام.
    ابتدا باید چهار تصویر را بارگذاری کنید 1. تصویر پس زمینه 2. تصویر پیش زمینه 3. تصویر ماسک اول 4. تصویر ماسک دوم . بعد باید تصویر زمینه را با ماسک دوم OR کنید سپس تصویر پیش زمینه را با ماسک اول OR کنید در ادامه نتایج دو مرحله قبل را با هم AND می کنید در انتها هم تصویر را در DC مورد نظر کپی می کنید تا نمایش داده شود.
    Mask.JPG


    HDC hdcBack, hdcFore, hdcMask1, hdcMask2;
    HBITMAP hbmBack1,hbmBack2,hbmFor1,hbmFor2,hbmMask1_1,hbmMa sk1_2,hbmMask2_1,hbmMask2_2;
    hdcBack = CreateCompatibleDC(hdc);
    hdcFore = CreateCompatibleDC(hdc);
    hdcMask1 = CreateCompatibleDC(hdc);
    hdcMask2 = CreateCompatibleDC(hdc);

    hbmBack1 = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_Background));
    hbmBack2 = (HBITMAP)SelectObject(hdcBack, hbmBack1);
    hbmFor1 = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_Foreground));
    hbmFor2 = (HBITMAP)SelectObject(hdcFore, hbmFor1);
    hbmMask1_1 = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_Mask1));
    hbmMask1_2 = (HBITMAP)SelectObject(hdcMask1, hbmMask1_1);
    hbmMask2_1 = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_Mask2));
    hbmMask2_2 = (HBITMAP)SelectObject(hdcMask2, hbmMask2_1);
    BitBlt(hdcBack,0,0,89, 53, hdcMask2,0,0, SRCPAINT);
    BitBlt(hdcFore,0,0,89, 53, hdcMask1,0,0, SRCPAINT);
    BitBlt(hdcBack,0,0,89, 53, hdcFore,0,0, SRCAND);
    BitBlt(hdc,0,0,132, 72, hdcBack,0,0, SRCCOPY);
    DeleteObject(hbmBack1);
    DeleteObject(hbmBack2);
    DeleteObject(hbmFor1);
    DeleteObject(hbmFor2);
    DeleteObject(hbmMask1_1);
    DeleteObject(hbmMask1_2);
    DeleteObject(hbmMask2_1);
    DeleteObject(hbmMask2_2);
    DeleteDC(hdcFore);
    DeleteDC(hdcBack);
    DeleteDC(hdcMask1);
    DeleteDC(hdcMask2);

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    پست
    58

    نقل قول: set كردن رنگ background تصوير با زمينه ي فرم

    از راهنمايي شما خيلي ممنونم. فقط يه سوال ديگه :
    مقدار hdc را بايد از كجا بگيرم؟ و hInst چي هست؟و مقدار خودش را از كجا ميگيرد؟

  6. #6
    کاربر دائمی آواتار ASGGSA
    تاریخ عضویت
    دی 1390
    محل زندگی
    همین نزدیکی ها
    پست
    128

    نقل قول: set كردن رنگ background تصوير با زمينه ي فرم

    برای HDC در Win32 :

    HDC = hdc;
    hdc =GetDC(hWnd)

    یا

    HDC = hdc;
    PAINTSTRUCT ps;
    hdc = BeginPaint(hWnd, &ps);

    اگر با MFC کار می کنید :

    CClientDC dc(this);
    //بطور مثال
    dc.BitBlt(0,0,132, 72, hdcBack,0,0, SRCCOPY);

    برای hInst یا hInstance این ساختمان نمونه ی دستگیره برنامه را در خود دارد.
    برای گرفتن نمونه جاری برنامه در MFC از تابع AfxGetInstanceHandle استفاده کنید.
    بطور مثال :

    LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));

    در Win32---hInst در تابع InitInstance مقدار گرفته است.

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    پست
    58

    نقل قول: set كردن رنگ background تصوير با زمينه ي فرم

    خيلي متشكرم ،راهنمايي هاي شما خيلي مفيد بود خيلي از مشكلاتم رو حل كرد!

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

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