当前位置: 首页 > news >正文

目前做哪些网站能致富网站建设评比考核报告

目前做哪些网站能致富,网站建设评比考核报告,百度首页快速排名系统,陕西网站开发联系方式概述 这篇的标题更确切的说应该叫位图画刷#xff0c;这样才好和前几篇对应起来。在Direct2D中#xff0c;位图的渲染也是通过画刷来实现的。 Direct2D中并没有直接操作位图的接口#xff0c;而是借助WIC#xff08;Windows Image Component#xff09;来完成的。今天我们…  概述 这篇的标题更确切的说应该叫位图画刷这样才好和前几篇对应起来。在Direct2D中位图的渲染也是通过画刷来实现的。 Direct2D中并没有直接操作位图的接口而是借助WICWindows Image Component来完成的。今天我们来看看如何在Direct2D中加载并显示位图。这个方法可以用来渲染背景。基本步骤如下。 从文件创建WIC位图由WIC位图创建D2D位图使用D2D绘制位图在开始之前首先简要介绍一下WIC 什么是WIC WIC全称是Windows Image Component是一套扩展的API用来处理数字图像它是基于COM组件的。该API包含非常丰富的图像处理函数比如 内置对于标准web image格式的解码支持内置对于标准metadata格式的支持广泛的像素格式支持高色度支持包含30位扩展30位及48位高精度像素格式对于图像解码像素格式及元数据格式的扩展框架支持WIC包含的组件及每个组件中的接口如下图所示。 在这里我们只要知道WIC能够处理图像即可比如位图操作。关于WIC的详细信息大家可以看看MSDN的介绍。 具体步骤 从文件创建WIC位图 给定一个图像文件我们首先使用WIC函数将其读入内存并创建一个WIC类型的位图。 首先我们需要创建一个解码器因为图片是经过编码的为了能显示图片我们首先需要将其解码创建解码器需要使用函数CreateDecoderFromFilename该函数返回一个解码器指针。稍后的操作都通过这个指针来完成关于这个函数的详细介绍可以参考MSDN这里不再赘述。 然后利用创建好的解码器来获取图片的帧我么这里只要第一帧因为图片只有一帧但是对于视频文件来说就有许多帧了。代码如下在这里uri即图片文件名。 HRESULT LoadBitmapFromFile(ID2D1RenderTarget *pRenderTarget,IWICImagingFactory *pIWICFactory,PCWSTR uri,UINT destinationWidth,UINT destinationHeight,ID2D1Bitmap **ppBitmap) {HRESULT hr S_OK;IWICBitmapDecoder *pDecoder NULL;IWICBitmapFrameDecode *pSource NULL;IWICStream *pStream NULL;IWICFormatConverter *pConverter NULL;IWICBitmapScaler *pScaler NULL;hr pIWICFactory-CreateDecoderFromFilename(uri,NULL,GENERIC_READ,WICDecodeMetadataCacheOnLoad,pDecoder);if (SUCCEEDED(hr)){// Create the initial frame.hr pDecoder-GetFrame(0, pSource);} 然后创建converter负责对位图进行后续的格式转换。 if (SUCCEEDED(hr)) {hr pIWICFactory-CreateFormatConverter(pConverter); } 接下来则要判断图像是否被放大或者缩小了比如一个图片的原始尺寸是100 x 100但是我们程序中要以 200 x 200的方式去显示那么相当于将图片放大了一倍图片的显示尺寸通过参数来指定而实际尺寸则是通过分析图片文件得到。如果图片有缩放那么需要从新生成图片的数据文件如果没有那么直接进行下一步即可。代码如下 // If a new width or height was specified, create an // IWICBitmapScaler and use it to resize the image. if (destinationWidth ! 0 || destinationHeight ! 0) {UINT originalWidth, originalHeight;hr pSource-GetSize(originalWidth, originalHeight);if (SUCCEEDED(hr)){if (destinationWidth 0){FLOAT scalar static_castFLOAT(destinationHeight) / static_castFLOAT(originalHeight);destinationWidth static_castUINT(scalar * static_castFLOAT(originalWidth));}else if (destinationHeight 0){FLOAT scalar static_castFLOAT(destinationWidth) / static_castFLOAT(originalWidth);destinationHeight static_castUINT(scalar * static_castFLOAT(originalHeight));}hr pIWICFactory-CreateBitmapScaler(pScaler);if (SUCCEEDED(hr)){hr pScaler-Initialize(pSource,destinationWidth,destinationHeight,WICBitmapInterpolationModeCubic);}if (SUCCEEDED(hr)){hr pConverter-Initialize(pScaler,GUID_WICPixelFormat32bppPBGRA,WICBitmapDitherTypeNone,NULL,0.f,WICBitmapPaletteTypeMedianCut);}} } 由WIC位图创建D2D位图 调用函数CreateBitmapFromWicBitmap可以由一个WIC位图创建一个D2D位图代码如下 if (SUCCEEDED(hr)) {// Create a Direct2D bitmap from the WIC bitmap.hr pRenderTarget-CreateBitmapFromWicBitmap(pConverter,NULL,ppBitmap); } 上面这些代码有个特点就是要时刻判断前一次函数调用的返回值只有前面的操作成功了才进行下一步操作。这是很好的编程习惯。 最后需要做一些清理工作由于WIC是基于COM的所以需要手动释放COM对象代码如下 SAFE_RELEASE(pDecoder); SAFE_RELEASE(pSource); SAFE_RELEASE(pStream); SAFE_RELEASE(pConverter); SAFE_RELEASE(pScaler); SAFE_RELEASE是一个宏定义 #define SAFE_RELEASE(P) if(P){P-Release() ; P NULL ;} 使用D2D绘制位图 这一步就很简单了绘制位图和绘制其他几何图形几乎没有区别。首先是将render target清空为指定颜色也就是背景色然后调用render target的接口DrawBitmap来绘制位图这个函数需要指定位图的尺寸所以之前还需要获取位图的大小。注意绘制代码要放在BeginDraw和EndDraw之间。 void DrawBitmap() {CreateD2DResource(g_Hwnd) ;pRenderTarget-BeginDraw() ;// Clear background color to dark cyanpRenderTarget-Clear(D2D1::ColorF(D2D1::ColorF::White));D2D1_SIZE_F size pBitmap-GetSize() ;D2D1_POINT_2F upperLeftCorner D2D1::Point2F(0.f, 0.f) ;// Draw bitmappRenderTarget-DrawBitmap(pBitmap,D2D1::RectF(upperLeftCorner.x,upperLeftCorner.y,upperLeftCorner.x size.width,upperLeftCorner.y size.height)) ;HRESULT hr pRenderTarget-EndDraw() ;if (FAILED(hr)){MessageBox(NULL, Draw failed!, Error, 0) ;return ;} } 最后来一张效果图这是微软的游戏 4 Elements 2 的截图大家一同欣赏一下。这是我平生购买的第一款游戏值得纪念一下。 转载于:https://www.cnblogs.com/h2zZhou/p/6295472.html
http://www.zqtcl.cn/news/831214/

相关文章:

  • 网站建设服务公司专业服务海外留学网站建设方案
  • 哈尔滨建站模板搭建马鞍山市网站建设
  • 上海网站设计专注乐云seo个人简介代码网页制作模板
  • 法律网站建设价格做视频周边的网站
  • 京东物流网站地方门户网站源码下载
  • 重庆建设工程信息网站企业宣传片制作公司光年映画
  • 哪家做网站好 成都ktv网络推广方案
  • 网站开发的软件支持哈尔滨最新消息
  • jsp淘宝客网站有限公司怎么注册
  • 香奈儿电子商务网站建设策划书怎样进行网络营销吸引顾客
  • 昆山网站建设费用我们公司想做网络推广
  • 网站建设一般要多少钱网站开发主要步骤
  • 商用图片的网站网络文化经营许可证查询
  • c 高性能网站开发弄一个公司网站需要多少钱
  • 建设部网站招标投标文件网页设计专业公司
  • 使用iis6搭建网站wordpress调用搜索功能
  • 装配式建筑网站生活家装饰
  • 怎样做软件网站建设百度网站认证官网
  • phpcms网站什么网站都能进的浏览器
  • 建设配资网站有要求吗网站建设不一定当地
  • 永兴网站开发智慧门店管理服务平台
  • 网站建设前的市场分析李炎辉网站建设教程
  • 乱起封神是那个网站开发的?广州市建设注册中心网站首页
  • 网站开发配置网络广告的投放技巧
  • wordpress 漫画网站安徽省建设厅八大员报名网站
  • 音乐网站排名建设部证书查询网站
  • 长沙建站挺找有为太极wordpress eshop 教程
  • 郑州平台类网站网站开发常见面试题
  • 城乡建设网站职业查询系统做网站设计的需要什么材料
  • ui做的好看的论坛网站加工制造网