zoukankan      html  css  js  c++  java
  • 多媒体指令(灰度像素最大值)

    如果不是处理的灰度图像,那么最大值也就没什么意思了。

    彩色图也可以转成灰度图嘛。

    虽然用了汇编,不过没有使用多媒体指令。

    灰度图像的RGB都一样,没必要使用mmx寄存器了,直接对单个字节处理就行了。

    获得最小值和获得最大值原理一样,只需改一个指令,把ja改为jna就行了。

    Pix asmGetMaxGrayPix(BitmapData *data)
    {
        //处理的是灰度图像,所以RGB值都一样
        //这里不需要用mmx指令也可以
        UINT Height=data->Height;
        UINT Width=data->Width;
        Pix* p=(Pix*)data->Scan0;
        UINT n=Height*Width-1;
        Pix Max;        //获得的最大像素
        __asm
        {
            push    esi;
            mov        ecx,n;
            mov        esi,[p];
            mov        eax,[esi];
            add        esi,4;
    lp:
            mov        ebx,[esi];
            cmp        al,bl;    //比较al,bl,若al>bl,则al不变,否则,al=bl;
            ja        lp2;    //al若大于bl,调到lp2; //若要最小值调用这个: jna  lp2;
            mov        al,bl;        
    lp2:
            add        esi,4;
            dec        ecx;
            jnz        lp;
    
            mov        ah,al;
            mov        bx,ax;
            shl        eax,16;
            mov        ax,bx;
            mov        [Max],eax;
            pop        esi;
        }
        return Max;
    }
  • 相关阅读:
    静态方法
    表单的验证
    jquery笔记
    jquery参考
    dom体系 和获取其他页面的Window对象
    jsRegExp对象
    jsDate对象
    js案例
    Sqli-Labs 闯关 less 42-53
    Sqli-Labs 闯关 less 32-41
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2963460.html
Copyright © 2011-2022 走看看