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

📄 displaywin.cpp

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 CPP
字号:
/* ////////////////////////////////////////////////////////////////////////////                  INTEL CORPORATION PROPRIETARY INFORMATION//     This software is supplied under the terms of a license agreement or//     nondisclosure agreement with Intel Corporation and may not be copied//     or disclosed except in accordance with the terms of that agreement.//          Copyright(c) 2002-2005 Intel Corporation. All Rights Reserved.//////*/#if defined SYSWIN32 || defined SYSWIN64#ifndef SYSWIN32 #define WIN32#endif#ifdef SYSWIN64 #define WIN64#endif#include <windows.h>#include <vfw.h>typedef struct{    HWND hWnd;    WNDCLASS wc;    HDRAWDIB hDrawDib;    BITMAPINFOHEADER biHeader;    unsigned char *dibBuf;    int width;    int height;} DIB_WINDOW;DIB_WINDOW dibWindow;LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);int DisplayPixMap( unsigned char *pixMap,                   const int      width,                   const int      height,                   const char    *jp2FileName ){    HINSTANCE hInstance = GetModuleHandle(NULL);    MSG msg;    char lpClassName[] = "JPEG2000Viewer";    char lpWindowName[300] = "JPEG2000Viewer - ";    strcat(lpWindowName, jp2FileName);    dibWindow.wc.style = CS_HREDRAW | CS_VREDRAW;    dibWindow.wc.lpfnWndProc = MainWndProc;    dibWindow.wc.cbClsExtra = 0;    dibWindow.wc.cbWndExtra = 0;    dibWindow.wc.hInstance = hInstance;    dibWindow.wc.hIcon = ExtractIcon(hInstance, "../../res/J2kit.ico", 0);    dibWindow.wc.hCursor = LoadCursor(NULL, IDC_ARROW);    dibWindow.wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);    dibWindow.wc.lpszMenuName = NULL;    dibWindow.wc.lpszClassName = lpClassName;    dibWindow.dibBuf = pixMap;    dibWindow.width = width;    dibWindow.height = height;    dibWindow.biHeader.biWidth = dibWindow.width;    dibWindow.biHeader.biHeight = dibWindow.height;    dibWindow.biHeader.biSize = sizeof(BITMAPINFOHEADER);    dibWindow.biHeader.biCompression = BI_RGB;    dibWindow.biHeader.biPlanes = 1;    dibWindow.biHeader.biBitCount = 24;    if(!RegisterClass(&dibWindow.wc))        return 1;    dibWindow.hWnd = CreateWindow(        lpClassName,        lpWindowName,        WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU,        0,        0,        100,        100,        NULL,        NULL,        hInstance,        NULL);    if(!dibWindow.hWnd)        return 1;    RECT clientRect, windowRect;    GetWindowRect(dibWindow.hWnd, &windowRect);    GetClientRect(dibWindow.hWnd, &clientRect);    MoveWindow(dibWindow.hWnd, windowRect.left, windowRect.top,        dibWindow.width + windowRect.right - clientRect.right,        dibWindow.height + windowRect.bottom - clientRect.bottom,        true);    ShowWindow(dibWindow.hWnd, SW_SHOWNORMAL);    UpdateWindow(dibWindow.hWnd);    while(GetMessage(&msg, NULL, 0, 0))    {        TranslateMessage(&msg);        if(DispatchMessage(&msg))            return 1;    }    return 0;}LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){    HDC hDC;    switch(message)    {    case WM_CREATE:        hDC = GetDC(hWnd);        if(!hDC)            return 1;        dibWindow.hDrawDib = DrawDibOpen();        if(!dibWindow.hDrawDib)            return 1;        DrawDibBegin(dibWindow.hDrawDib,            hDC,            dibWindow.width,            dibWindow.height,            &dibWindow.biHeader,            dibWindow.width,            dibWindow.height,            0);        ReleaseDC(hWnd, hDC);        break;    case WM_PAINT:        hDC = GetDC(hWnd);        if(!hDC)            return 1;        DrawDibDraw(          dibWindow.hDrawDib,          hDC,          0,          0,          dibWindow.width,          dibWindow.height,          &dibWindow.biHeader,          dibWindow.dibBuf,          0,          0,          dibWindow.width,          dibWindow.height,          DDF_SAME_DRAW);        ReleaseDC(hWnd, hDC);        break;    case WM_DESTROY:        PostQuitMessage(0);        break;    default:        return DefWindowProc(hWnd, message, wParam, lParam);    }    return 0;}#endif // SYSWIN32 || defined SYSWIN64

⌨️ 快捷键说明

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