标题:【求教】JPEG数字水印实现
只看楼主
crowkeeper
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-16
 问题点数:0 回复次数:6 
【求教】JPEG数字水印实现
我现在在做JPEG的数值水印实现,以前做图像处理都是BMP的,现在改成JPEG,都不知道怎么导入VC
有没有人能给点指导,毕竟我还是小菜鸟。
如果有导入JPEG的工程请发到我邮箱zhangchu63@
谢谢
搜索更多相关主题的帖子: JPEG 数字水印 图像处理 sohu 邮箱 
2008-04-16 13:04
radcat
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:306
专家分:45
注 册:2006-9-12
得分:0 
HBITMAP JpgToBmp(LPCTSTR szFile, HBITMAP hRet)
{
    LPPICTURE gpPicture;
    HANDLE   hFile = ::CreateFile(szFile,   GENERIC_READ,0,NULL,
        OPEN_EXISTING, 0,NULL);
    if(INVALID_HANDLE_VALUE   ==   hFile)
        return   false;
    DWORD dwFileSize = ::GetFileSize(hFile,NULL);
    ASSERT(-1!=dwFileSize);
    LPVOID pvData = NULL;
    HGLOBAL hGlobal = ::GlobalAlloc(GMEM_MOVEABLE,   dwFileSize);
    ASSERT(NULL!=hGlobal);
    pvData = ::GlobalLock(hGlobal);
    ASSERT(NULL!=pvData);
    DWORD dwBytesRead = 0;
    BOOL  bRead  =  ::ReadFile(hFile,pvData,dwFileSize,&dwBytesRead,NULL);
    ASSERT(FALSE!= bRead);
    ::GlobalUnlock(hGlobal);
    ::CloseHandle(hFile);
    LPSTREAM pstm =  NULL;
    HRESULT hr = ::CreateStreamOnHGlobal(hGlobal,TRUE,&pstm);
    ASSERT(SUCCEEDED(hr)&&pstm);
    hr=::OleLoadPicture(pstm,dwFileSize,FALSE,IID_IPicture,
        (LPVOID*)&gpPicture);
    ASSERT(SUCCEEDED(hr)&&gpPicture);
    pstm->Release();
    OLE_HANDLE picHandle;
    gpPicture->get_Handle(&picHandle);
    HDC hdc =  ::CreateCompatibleDC(NULL);
    ASSERT(hdc);
    ::SelectObject(hdc,(HGDIOBJ)picHandle);
    hRet = (HBITMAP)::GetCurrentObject(hdc,OBJ_BITMAP);
    DeleteDC(hdc);
    return   hRet;
}
用法
HBITMAP hbitmap;
hbitmap = JpgToBmp("你的jpg文件路径",hbitmap);
返回一个HBITMAP句柄

2008-04-16 19:46
crowkeeper
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-16
得分:0 
谢谢了,我现试试
2008-04-17 08:55
crowkeeper
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-16
得分:0 
我现在是给客户做图片水印,文件很重要,就要JPEG格式的,不能改格式。
您还有什么好的建议么?
2008-04-17 09:28
radcat
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:306
专家分:45
注 册:2006-9-12
得分:0 
这个是打开jpg如果保存你存成jpg的不就行了,其实文件在操作中都是转成HBITMAP的,看来你对编程还是不太理解,jpg是无法只接操作的。

2008-04-17 22:39
crowkeeper
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-16
得分:0 
那使用HBITMAP句柄能直接操作显示图片么,怎么调用HBITMAP中的图片信息,并且显示出来。
2008-04-21 20:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-209341-1-1.html




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

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