将RGB想成3D之X,Y,Z轴,则BMP的RGB为(r,g,b)与座标(Y,Y,Y)距离最小时的Y即为灰阶值 Y=0.29900*R 0.58700*G 0.11400*B 整数化 Y=(9798*R 19235*G 3735*B)/32768 RGB(Y,Y,Y)就可以了
需一个内有彩色图的PictureBox,CommandBox OptionExplicit PrivateDeclareFunctionGetPixelLib"gdi32"_ (ByValhdcAsLong,ByValxAsLong,ByValYAsLong)AsLong PrivateDeclareFunctionSetPixelVLib"gdi32"_ (ByValhdcAsLong,ByValxAsLong,_ ByValYAsLong,ByValcrColorAsLong)AsLong PrivatetmpPicAsPicture
PrivateSubForm_Load() Picture1.ScaleMode=3'设为Pixel Picture1.AutoRedraw=True'设定所有Pixel的改变不立即在pictureBox上显示 SettmpPic=Picture1.Picture EndSub
PrivateSubCommand1_click() Dimwidth5AsLong,heigh5AsLong,rgb5AsLong Dimhdc5AsLong,iAsLong,jAsLong DimbBlueAsLong,bRed->
|