⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 img8operations.h

📁 该源码程序实现了intel MMX16位的底层控制功能,在vc环境下完成的。
💻 H
字号:
#pragma once

#include <emmintrin.h>		// MMX, SSE, SSE2 intrinsic support


// Image processing operations with 8 bits per pixel image
//
// For each image processing operation there are 3 functions:
// C++, C++ with MMX, Assembly with MMX
//
// Note about emms instruction:
// This program doesn't use float operations. However, it uses
// emms in the start and end of each MMX block.  I think it is 
// a good idea to use emms always if this instruction is not part
// of some program loop.
//
class CImg8Operations
{
public:
    CImg8Operations(void);
    ~CImg8Operations(void);

    // Invert image
    typedef void (CImg8Operations:: *INVERT_IMAGE)(BYTE* pSource, BYTE* pDest, int nNumberOfPixels);

    void InvertImageCPlusPlus(BYTE* pSource, BYTE* pDest, int nNumberOfPixels);
    void InvertImageC_MMX(BYTE* pSource, BYTE* pDest, int nNumberOfPixels);
    void InvertImageAssembly_MMX(BYTE* pSource, BYTE* pDest, int nNumberOfPixels);

    // Reduce brightness
    typedef void (CImg8Operations:: *CHANGE_BRIGHTNESS)(BYTE* pSource, BYTE* pDest, int nNumberOfPixels,
                                                        int nChange);

    void ChangeBrightnessCPlusPlus(BYTE* pSource, BYTE* pDest, int nNumberOfPixels, int nChange);
    void ChangeBrightnessC_MMX(BYTE* pSource, BYTE* pDest, int nNumberOfPixels, int nChange);
    void ChangeBrightnessAssembly_MMX(BYTE* pSource, BYTE* pDest, int nNumberOfPixels, int nChange);



protected:
    __m64 Get_m64(__int64 n);

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -