图象转换下

C++通过Windows SMART命令获取硬盘序列号:原理、代码与避坑指南 在Windows系统编程中,硬件信息获取是软件授权、系统监控等场景的基础需求。其核心原理在于操作系统通过设备接口和IOCTL机制,为应用程序提供了与物理硬件通信的安全通道。通过发送标准的ATA命令,如IDENTIFY DEVICE,可以直接读取硬盘固件中的关键数据。这项技术的工程价值在于实现了不依赖第三方库或外部命令的纯本地化硬件交互,为软件绑定、设备识别提供了稳定可靠的底层支持。在实际应用中,开发者常面临权限管理、NVMe兼容性、字节序处理等挑战。本文以获取硬盘序列号为例,详细解析了通过SMART命令与硬 阅读详情

图象转换下

'**********************************************************************
'* 刷新 PictureBox 控件的 Picture 对象。对PictureBox中的任何绘图操作,
'*                  通过它即可转换为Picture对象
'* 使用该函数可将PictureBox内的图象编辑结果永久更新为 Picture 对象
'* 参数∶ PicBox PictureBox控件名
'*        lWidth 需要更新的图象宽度(按你的需要,不局限于目前Picture对
'*               象的实际大小),也是最后要形成的Picture对象的图象宽度(单位∶像素)
'*        lHeight 需要更新的图象高度,其他类同与 lWidth(单位∶像素)
'**********************************************************************
Function UpdatePicture(ByRef PicBox As Object, Optional ByVal lWidth As Long = -1, _
            Optional ByVal lHeight As Long = -1) As Boolean
 
 On Error GoTo errHandle

  Dim oldScMode As Integer
  Dim hNewDC As Long
  Dim hOldBit As Long
  Dim hNewBit As Long

  oldScMode = -1
  oldScMode = PicBox.ScaleMode
  If lWidth = -1 Then
    lWidth = PicBox.ScaleX(PicBox.Picture.Width, 8, vbPixels)
  End If
  If lHeight = -1 Then
    lHeight = PicBox.ScaleY(PicBox.Picture.Height, 8, vbPixels)
  End If

  hNewDC = CreateCompatibleDC(PicBox.hdc)
  hNewBit = CreateCompatibleBitmap(PicBox.hdc, lWidth, lHeight)
  hOldBit = SelectObject(hNewDC, hNewBit)

  BitBlt hNewDC, 0, 0, lWidth, lHeight, PicBox.hdc, 0, 0, vbSrcCopy
  SelectObject hNewDC, hOldBit

  PicBox.Picture = BitmapToPicture(hNewBit)

  DeleteObject hNewDC
  DeleteDC hNewDC
  If oldScMode <> -1 Then PicBox.ScaleMode = oldScMode
  UpdatePicture = True

  Exit Function
errHandle:
  UpdatePicture = False
  If oldScMode <> -1 Then PicBox.ScaleMode = oldScMode
End Function
有关的API函数声明

Option Explicit

Public Const hNull = 0

Public Type IID
   Data1 As Long
   Data2 As Integer
   Data3 As Integer
   Data4(0 To 7) As Byte
End Type

Public Type PICTDESC
  cbSizeofstruct As Long
  picType As Long
  hgdiobj As Long
  hPalOrXYExt As Long
End Type

Public Declare Sub OleCreatePictureIndirect Lib "olepro32.dll" ( _
  lpPictDesc As PICTDESC, _
  riid As IID, _
  ByVal fPictureOwnsHandle As Long, _
  ipic As IPicture)
Public Declare Function CreateCompatibleDC& Lib "gdi32" (ByVal hdc As Long)
Public Declare Function CreateCompatibleBitmap& Lib "gdi32" ( _
  ByVal hdc As Long, _
  ByVal nWidth As Long, _
  ByVal nHeight As Long)
Public Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Public Declare Function SelectObject& Lib "gdi32" ( _
  ByVal hdc As Long, _
  ByVal hObject As Long)
Public Declare Function DeleteObject& Lib "gdi32" (ByVal hObject As Long)


       以上代码来自: 源代码数据库(SourceDataBase)
           当前版本: 1.0.436
               作者: Shawls
           个人主页: Http://Shawls.Yeah.Net
             E-Mail: ShawFile@163.Net
                 QQ: 9181729

别再瞎调了!STM32 Systick延时函数避坑指南(正点原子、野火、慧净代码对比) 本文深入解析STM32 Systick延时函数的实现差异与优化策略,对比正点原子、野火、慧净等主流方案的优缺点。针对us和ms级延时精度问题,提供避坑指南和高级优化技巧,帮助开发者根据项目需求选择最佳方案,提升嵌入式系统的定时控制精度。 阅读详情

相关推荐

NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能

NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能

XiaoqiangClub的博客 6256

VC下加载JPG/GIF/PNG图片的两种方法

仅管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。 1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPictur...

weixin_34274029的博客 220

VBA常用技巧解析(全卷).zip

一共4卷,我花了16分一个一个下载,然后打包在一起了。

获取图标(失真)

//在客户端上一级目录创建一个文件夹 //inloadName 创建的文件夹名称 //outFileload 文件夹的路径 int SoftInfosetDownloadLoad(std::string inloadName, std::string& outFileload) { //用于存储模块路径 CHAR szMoudlePath[MAX_PATH]; //使用NULL参数,获取本模块路径 if (!GetModuleFileNameA(NULL, szMoudlePath, MA

weixin_41167925的博客 341

VC下加载JPG/GIF/PNG图片的两种方法(转)

本文转自 http://blog.sina.com.cn/s/blog_6582aa410100huil.html。 仅管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。 1.用APIOleLoadPicture来加载JPG、GIF格式的图

钟斌的博客 4818

IPicture总结

1、IPicture接口对象的创建          方法1:直接通过文件创建 LPCSTR szFileUrl;  IPicture *pIPicture;  OleLoadPicturePath(CComBSTR(szFileUrl),    (LPUNKNOWN)NULL,    0,    0,    IID_IPicture,    (LPVOID*)&pIPi

xuyongbeijing2008的专栏 2502

VC下加载多种格式图片的方法总结

尽管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。 1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPict...

weixin_30772105的博客 456

所有 OLE API 和接口的用途

所有 OLE API 和接口的用途 概要 OLE 是一套实施的服务、 机制可以自定义这些服务,以及安装自定义的服务,根据各种协议的机制。每个 OLE API 函数和每个当前定义的接口 (即那些发现的运输费 OLE 技术) 在这一框架目的。下面列出了 API 函数和接...

dizhi5320的博客 668

VBA技术技巧收集(一)

VBA技术技巧收集(一)分类:ExcelVBA>>技术技巧[001]在工作表中插入图片使用Insert方法,例如,下面的代码将从Web网上相应的地址中获取图片并在当前工作表中以活动单元格为起点放置图片。Sub InsertPicture()ActiveSheet.Pictures.Insert “UploadFiles/2006-10/1025523341.jpg"End Sub同理,下面的代码将

国际海员 3078

OLE接口详解

所有 OLE Api 和接口的目的 本页 摘要 详细信息 常规 初始化和内存管理 远程处理 自定义服务 服务注册 DLL 服务器管理 杂项 COM 函数 命名 (名字对象) 结构化的存储 永久对象

ljmwork的专栏 7635

转贴:[转]所有 OLE api 和接口的目的

转自http://support.microsoft.com/kb/126157/zh-cn http://apps.hi.baidu.com/share/detail/18909481 比较有用,记录下来供查阅 常规 函数: lUnknown目的: 控制的接口协商的对象生存期。普遍存在的任何组件,而不考虑实现。QueryInterface 公开传入的接口。 函数: IEnum目的...

weixin_30448603的博客 379

用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片

OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCreatePictureIndirect来加载图片,不过相比而言OleLoadPicture函数简化了基于流的IPicture对象的创 建),下面是示例代码:(注:由于只是用来示例,代码中省去了出错情况的处理)void Dis

DaLei的专栏 1676

VGG网络--实现图像的风格转化

GAN–图像的风格转化 快速风格转换需要用到的数据集是Microsoft COCO。 一、网络结构 主要组成: 风格网络训练部分 图片风格转化部分 (1)图像转换网络fw:由权重w参数化的深度残差卷积神经网络。将输入图像x转化为对应输出的y^, 通过计算y^和目标图像yi的差异,利用随机训练梯度下降的方法来最小化加权组合的损失函数: 图像风格转换网络,使用跨步和分段跨度卷积进行网内下采样和上采样。 (2)损失网络φ:衡量内容图片和风格图片利用特征重建和风格重建。为每个风格训练一个网络,输出图像是内容图像

SinsoledadFairy的博客 1574

Java开源在线考试系统怎么选?从技术选型到落地部署的完整指南

Java开源在线考试系统怎么选?本文从技术选型、核心功能、部署运维、二次开发等维度,梳理了Java开源在线考试系统的选型要点。

麦塔在线考试培训系统 350

三相全桥电压型逆变电路simulink仿真模型

三相全桥电压型逆变电路simulink仿真模型

上一篇: 图象转换上
下一篇: Shell语句用法心得
shawls
博客等级 码龄26年 32粉丝 62原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值