VB无所不能之二:利用GDI+处理图像格式转换
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Type GdiplusStartupInput
GdiplusVersion As Long
DebugEventCallback As Long
SuppressBackgroundThread As Long
SuppressExternalCodecs As Long
End Type
Private Type EncoderParameter
GUID As GUID
NumberOfValues As Long
type As Long
Value As Long
End Type
Private Type EncoderParameters
count As Long
Parameter As EncoderParameter
End Type
Private Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long
Private Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hPal As Long, BITMAP As Long) As Long
Private Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long
Private Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal FileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Private Declare Function CLSIDFromString Lib "ole32" (ByVal Str As Long, id As GUID) As Long
Private Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb As Long) As Long
Dim TIFF_ColorDepth As Long
Dim TIFF_Compression As Long
Screen.MousePointer = vbHourglass
Dim tSI As GdiplusStartupInput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long
Dim aEncParams() As Byte
Dim pict As StdPicture
On Error GoTo ErrHandle:
Quality=80
TIFF_ColorDepth=24
TIFF_Compression=6
pict=Picture1.Picture
tSI.GdiplusVersion = 1
lRes = GdiplusStartup(lGDIP, tSI)
lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)
Dim tJpgEncoder As GUID
Dim tParams As EncoderParameters
CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
tParams.count = 1
With tParams.Parameter ' Quality
CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .GUID
.NumberOfValues = 1
.type = 4
.Value = VarPtr(Quality)
End With
ReDim aEncParams(1 To Len(tParams))
Call CopyMemory(aEncParams(1), tParams, Len(tParams))
VB无所不能之二:利用GDI+处理图像格式转换相关推荐
- VB无所不能之七:VB的多线程(2)
云查杀很牛X的金山毒霸!免费啦!2011下载链接! 久违啦,我今天终于又可以写博客了,VB无所不能这个系列写作途中总是磕磕绊绊的,终于写到第七篇多线程的时候,中断了长达1个多月的时间没有更新新帖,对大 ...
- matlab 方波_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号
##MATLAB之Simulink(二) ##利用switch模块将正弦信号变为方波信号 今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号. 下面开始教程: 1.首先直接在MATL ...
- VB无所不能之五:建立“标准”DLL动态链接库文件(1)
VB无所不能之五:建立"标准"DLL动态链接库文件(1) --作者:钟声 博客地址:http://useway.blog.51cto.com 动态链接库经常被认为是VC或者Deph ...
- 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析
实验二 利用matlab进行系统的时域分析 实验二 利用MATLAB进行系统的时域分析 1.实验目的 在理论学习的基础上,通过本实验熟悉LTI连续时间系统的时域分析方法, 熟悉系统的零输入响应.零状态 ...
- matlab simulink_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号
##MATLAB之Simulink(二) ##利用switch模块将正弦信号变为方波信号 今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号. 下面开始教程: 1.首先直接在MATL ...
- VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到 现在介绍一下使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: ...
- 实验二利用自动机理论实现词法分析器
实验二利用自动机理论实现词法分析器 1.实验目的熟悉词法分析阶段的要求,掌握利用自动机理论实现词法分析器的方法. 2.实验设备硬件:PC 机一台软件:Windows 系统,高级语言集成开发环境 3.实 ...
- 【Microsoft Azure 的1024种玩法】六十二.利用Azure Private DNS 实现虚拟网络中域名的管理解析
[简介] Azure Private DNS是Azure为我们虚拟网络提供的安全可靠的DNS服务,我们无需自行配置DNS即可在虚拟网络中实现域名的解析及配置, 于此同时,我们在内网中也可以利用自己的自 ...
- 实验二利用MATLAB工具箱对混杂噪声的音频信号进行滤波
实验二利用MATLAB工具箱对混杂噪声的音频信号进行滤波 一.小提琴音频的加噪去噪处理 要求:选择子作业1中的音频信号,自行给定滤波器的系统函数,分别采用时域线性卷积和差分方程两种方法对音频信号进行滤 ...
最新文章
- mysql数据更新回退_Mysql的几个灵魂拷问(一)
- R语言原生hist函数绘制直方图实战
- websocket创建失败_SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人
- vue-loader 源码分析
- 生成docker镜像
- 高性能服务器模型分类
- 监督学习 | ID3 C4.5 决策树原理
- 第17课 欧耶欧耶 《小学生C++趣味编程》
- hbase linux 命令,在linux下操作hbase
- Windows10下解压版mysql-8.0.11安装教程
- 2016年银行业专业人员初级资格考试《个人理财》考试大纲
- 激光雷达考试基础知识
- 一不小心画了 24 张图剖析计网应用层协议!
- linux redhat 去掉警报声音
- HTML期末大学生网页设计作业--官网仿qq音乐(1页)
- html5 按钮效果,7款外观迷人的HTML5/CSS3 3D按钮特效
- Job和CronJob介绍
- html省市插件,省市区三级联动:非常好用的纯js插件
- 2022IC秋招面经分享【禾赛科技·FPGA开发工程师(上海)】
- linux ps显示完整command