Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.
0 Anggota dan 1 Pengunjung sedang melihat topik ini.
fGrayScale proc lpBitsSrc:dword,lpBitsRslt:dword,x:dword,y:dword,w:dword,h:Dword LOCAL _x,_y:dword LOCAL cp,np:dword LOCAL r,g,b:dword xor ecx,ecx mov ecx,y loop_y: push ecx mov _y,ecx xor ecx,ecx mov ecx,x loop_x: push ecx mov _x,ecx invoke GetDIBPixel,_x,_y,lpBitsSrc,w,h mov cp,eax movzx ecx,al mov b,ecx shr eax,8 movzx ecx,al mov g,ecx shr eax,8 movzx ecx,al mov r,ecx xor edx,edx mov eax,r mov ecx,30 mul ecx mov ecx,100 div ecx mov r,eax xor edx,edx mov eax,g mov ecx,59 mul ecx mov ecx,100 div ecx mov g,eax xor edx,edx mov eax,b mov ecx,11 mul ecx mov ecx,100 div ecx mov b,eax xor eax,eax add eax,r add eax,g add eax,b ; xor edx,edx ; mov ecx,3 ; div ecx xor ecx,ecx mov cl,al shl ecx,8 mov cl,al shl ecx,8 mov cl,al invoke SetDIBPixel,_x,_y,lpBitsRslt,w,h,ecx no_need: pop ecx inc ecx cmp ecx,w jl loop_x pop ecx inc ecx cmp ecx,h jl loop_y done: retfGrayScale endp