سؤال

أحاول استخدام getpixel و setpixel لنسخ محتويات صورة إلى صورة أخرى (أعرف أن هناك طرقًا أخرى للقيام بذلك ، ولكن هناك أسباب أرغب في تجربتها ؛ د)

على أي حال ، فإن الصور هي صور .png ، بحيث تتضمن إعدادات الشفافية.

ولكن لسبب ما ، يبدو أنه عندما أستخدم GetPixel & setpixel لوضع صورة على صورة أخرى ، يبدو أن الصورة الثانية تحل محل الصورة الأخرى تمامًا. أعني ، يبدو أن إعدادات الشفافية لا تحظى باحترام عندما أستخدم getPixel & setpixel.

كلتا الصورتين لها نفس الحجم. كلاهما لديه مناطق شفافة.

هل كانت مفيدة؟

المحلول

قبل الاتصال setPixel () تحتاج إلى الاتصال maketransparnet (). إليك بعض التعليمات البرمجية التي تنسخ محتويات البكسل الأول في صورة ألفا على صورة أخرى وتحتفظ بقناة ألفا الصورة الأولى:

    Using img1 = New Bitmap("c:\Users\Owner\Desktop\1.png")
        PX = img1.GetPixel(0, 0)
    End Using

    Using img2 = New Bitmap("c:\Users\Owner\Desktop\2.png")
        img2.MakeTransparent() '//Sets the transparent value and converts the image to Format32bppArgb
        img2.SetPixel(0, 0, PX)
        img2.Save("c:\Users\Owner\Desktop\3.png")
    End Using
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top