计算机系要学线代码,免费教计算机系的同学写代码!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

晕! 看清IP 在说! 我是楼主 ! 但是这是我第而次近来!

发生了什么事! 我晕死了! 在java C# VB

读去图片很简单, 前天用 C++做 ,根句图片生成不规则按扭,就挺 麻烦的, 不过还是成功了!

你说问的问题我想在标准C写,我要点时间,不能马上写出来! 我可以给你C++和C#

(一 vc 狂读图片)

#i nclude 

#i nclude  // DirectDraw interfaces

#pragma comment(lib,"ddraw.lib")

#pragma comment(lib,"dxguid.lib")

#i nclude "mmstream.h" // multimedia stream interfaces

#i nclude "amstream.h" // DirectShow multimedia stream interfaces

#i nclude "ddstream.h" // DirectDraw multimedia stream interfaces

#pragma comment(lib,"strmiids.lib")

HRESULT RenderStreamToSurface(IDirectDrawSurface *pSurface, IMultiMediaStream *pMMStream)

{

IMediaStream *pPrimaryVidStream;

IDirectDrawMediaStream *pDDStream;

IDirectDrawStreamSample *pSample;

RECT rect;

DDSURFACEDESC ddsd;

HRESULT hr;

hr = pMMStream->GetMediaStream(MSPID_PrimaryVideo, &pPrimaryVidStream);

if (FAILED(hr))

{

return hr;

}

pPrimaryVidStream->QueryInterface(IID_IDirectDrawMediaStream, (void **)&pDDStream);

ddsd.dwSize = sizeof(ddsd);

hr = pDDStream->GetFormat(&ddsd, NULL, NULL, NULL);

if (SUCCEEDED(hr))

{

rect.top = rect.left = 0;

rect.bottom = ddsd.dwHeight;

rect.right = ddsd.dwWidth;

hr = pDDStream->CreateSample(pSurface, &rect, 0, &pSample);

if (SUCCEEDED(hr))

{

pMMStream->SetState(STREAMSTATE_RUN);

while (pSample->Update(0, NULL, NULL, NULL) == S_OK)

{

// Empty loop.

}

pMMStream->SetState(STREAMSTATE_STOP);

pSample->Release();

}

}

pDDStream->Release();

pPrimaryVidStream->Release();

return hr;

}

HRESULT RenderFileToMMStream(

const char * szFileName,

IMultiMediaStream **ppMMStream,

IDirectDraw *pDD)

{

if (strlen(szFileName) > MAX_PATH)

{

return E_INVALIDARG;

}

IAMMultiMediaStream *pAMStream;

HRESULT hr = CoCreateInstance(CLSID_AMMultiMediaStream, NULL, CLSCTX_INPROC_SERVER, IID_IAMMultiMediaStream, (void **)&pAMStream);

if (FAILED(hr))

{

return hr;

}

WCHAR wPath[MAX_PATH + 1];

MultiByteToWideChar(CP_ACP, 0, szFileName, -1, wPath, MAX_PATH + 1);

pAMStream->Initialize(STREAMTYPE_READ, AMMSF_NOGRAPHTHREAD, NULL);

pAMStream->AddMediaStream(pDD, &MSPID_PrimaryVideo, 0, NULL);

pAMStream->AddMediaStream(NULL, &MSPID_PrimaryAudio, AMMSF_ADDDEFAULTRENDERER, NULL);

hr = pAMStream->OpenFile(wPath, 0);

if (SUCCEEDED(hr))

{

hr = pAMStream->QueryInterface(IID_IMultiMediaStream, (void**)ppMMStream);

}

pAMStream->Release();

return hr;

}

int __cdecl main(int argc, char *argv[])

{

if (argc 

{

printf("Usage : showstrm movie.ext\n");

exit(0);

}

DDSURFACEDESC2 ddsd;

LPDIRECTDRAW7 pDD;

LPDIRECTDRAWSURFACE7 pPrimarySurface;

IMultiMediaStream *pMMStream;

CoInitialize(NULL);

DirectDrawCreateEx (NULL, (void **)&pDD, IID_IDirectDraw7, NULL);

pDD->SetCooperativeLevel(GetDesktopWindow(), DDSCL_NORMAL);

ZeroMemoy(&ddsd, sizeof(ddsd));//设置页面内存大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值