| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1706 人关注过本帖
标题:jpg版主:请教你个问题!
只看楼主 加入收藏
xujianpeng
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-11-8
收藏
 问题点数:0 回复次数:4 
jpg版主:请教你个问题!
c语言怎么读jpg的图形啊??
搜索更多相关主题的帖子: 版主 jpg 
2007-11-27 21:43
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
LZ,你要问的应该是怎么显示JPG图片。

那么首先你要理解BMP元位图的格式和显示原理

JPG呢就是在将原始图片信息经过一个压缩算法后得到的一个体积小很多的文件。

所以你要做的两步。

1。弄明白用C怎么显示BMP
2。去找一个云风写的关于JPG压缩的文章

全弄明白了,你就可以自己动手写个显示JPG图片的模块出来了。

个人网站 -  http://.h001.
2007-11-30 14:42
青格儿
Rank: 4
等 级:贵宾
威 望:11
帖 子:698
专家分:20
注 册:2007-7-31
收藏
得分:0 
这有个显示BMP图片的程序,你看对你有没用?

#include <windows.h>

int  cxClient, cyClient ;
HINSTANCE hInst ;

int outBmpFile(HINSTANCE hInstance, HWND hwnd) ;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
    static TCHAR szAppName[] = TEXT ("SineWave") ;
    MSG           msg ;
    WNDCLASS      wndclass;
    HWND hwnd ;

    wndclass.style        = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc  = WndProc ;
    wndclass.cbClsExtra   = 0 ;
    wndclass.cbWndExtra   = 0 ;
    wndclass.hInstance    = hInstance ;
    wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground= (HBRUSH) GetStockObject (LTGRAY_BRUSH) ;
    wndclass.lpszMenuName  = NULL ;
    wndclass.lpszClassName = szAppName ;
    hInst = hInstance ;
    if (!RegisterClass (&wndclass))
    {
            MessageBox (  NULL, TEXT ("Program requires Windows NT!"),
                   szAppName, MB_ICONERROR) ;
                   return 0 ;
    }

    hwnd = CreateWindow ( szAppName, TEXT ("窗口母本程序"),
                          WS_OVERLAPPEDWINDOW,
                           10, 10,
                           800, 600,
                           NULL, NULL, hInstance, NULL) ;

    ShowWindow (hwnd, iCmdShow) ;
    UpdateWindow (hwnd) ;


    while (GetMessage (&msg, NULL, 0, 0))
    {
            TranslateMessage (&msg) ;
            DispatchMessage (&msg) ;
    }

    return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC         hdc ;
    PAINTSTRUCT ps ;


    switch (message)
    {
    case    WM_CREATE:
            return 0 ;
    case    WM_SIZE:
            cxClient = LOWORD (lParam) ;
            cyClient = HIWORD (lParam) ;

            InvalidateRect (hwnd, NULL, FALSE) ;
            return 0;
    case    WM_PAINT:
            hdc = BeginPaint (hwnd, &ps) ;

            EndPaint (hwnd, &ps) ;

            return 0 ;

    case    WM_KEYUP:
            exit(0) ;
            return 1 ;
    case    WM_LBUTTONUP:
            outBmpFile(hInst, hwnd) ;
            return 0 ;

    case    WM_DESTROY:
            PostQuitMessage (0) ;
            return 0 ;

    }

    return DefWindowProc (hwnd, message, wParam, lParam) ;

}

//显示一个文件名为E:\\Circles.bmp的BMP文件
int outBmpFile(HINSTANCE hInstance, HWND hwnd)
{
    HDC hDC;
HBITMAP hBitmap;
hDC=GetDC(hwnd);
hBitmap=(HBITMAP)LoadImage(hInst,"E:\\aa.bmp",IMAGE_BITMAP,
     0,0,LR_DEFAULTCOLOR|LR_LOADFROMFILE);
DrawState(hDC,NULL,NULL,(LPARAM)hBitmap,0,0,0,0,0,DST_BITMAP);
}
2007-12-11 20:23
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
网上可以找到一个 Independent JPEG Group 写的 JPEG Codec, 是一个完全用 C 语言实现的 JPEG 编解码库,具有良好的可移植性,并且已经支持了 Turbo C, Microsoft C, Borland C, DJGPP, Watcom C, VC 等多种编译器。

我曾经成功的在 VC 和 EVC 下使用该 Codec 进行 JPEG 的编解码,实现了图片浏览,数码相机的 JPEG 编码等等功能。即便是在 TC 下,该 Codec 仍然能够很好的工作,推荐使用。

2007-12-11 21:16
violet089
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-4-19
收藏
得分:0 
好贴要学习
2011-05-25 08:38
快速回复:jpg版主:请教你个问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025906 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved