为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

彩色图去色转黑白图源码

三叶资源网 2019-10-09 12:49:26 网络相关源码 1541 ℃ 1 评论
.版本 2
.支持库 RegEx

.程序集 窗口程序集1

.子程序 _按钮1_被单击
.局部变量 hToken, 整数型
.局部变量 s, 整数型
.局部变量 ScriptDir, 文本型

s = 取启动时间 ()
ScriptDir = 取运行目录 ()
hToken = _GDIPlus_Startup ()
_GDIPlus_ImageToGray (ScriptDir + “haijie1223.jpg”, ScriptDir + “New_灰度.jpg”)
GdiplusShutdown (hToken)
s = 取启动时间 () - s
标题 = “耗时:” + 到文本 (s) + “毫秒”

.子程序 _GDIPlus_ImageToGray, 整数型, , 将彩色转为灰度(去色),输出文件或灰度图像对象句柄
.参数 sFile, 文本型
.参数 sFile_Gray, 文本型
.局部变量 hImage, 整数型
.局部变量 iW, 整数型
.局部变量 iH, 整数型
.局部变量 hGraphics, 整数型
.局部变量 hIA, 整数型
.局部变量 tCOLORMATRIX, cColorMatrix
.局部变量 iRet, 整数型

GdipLoadImageFromFile (编码_Ansi到Unicode (sFile, ), hImage)
GdipGetImageWidth (hImage, iW)
GdipGetImageHeight (hImage, iH)
iRet = GdipGetImageGraphicsContext (hImage, hGraphics)
iRet = GdipCreateImageAttributes (hIA)
tCOLORMATRIX = _GDIPlus_ColorMatrixCreateGrayScale ()
iRet = GdipSetImageAttributesColorMatrix (hIA, 0, 真, tCOLORMATRIX, 0, 0)
iRet = GdipDrawImageRectRect (hGraphics, hImage, 0, 0, iW, iH, 0, 0, iW, iH, 2, hIA, 0, 0)
.如果 (sFile_Gray ≠ “”)
    iRet = _GDIPlus_ImageSaveToFile (hImage, sFile_Gray)
    GdipDeleteGraphics (hGraphics)
    GdipDisposeImage (hImage)
    返回 (iRet)
.否则
    返回 (hImage)
.如果结束


.子程序 _GDIPlus_ImageSaveToFile, 整数型
.参数 hImage, 整数型
.参数 sFileName, 文本型
.局部变量 sExt, 文本型
.局部变量 pStr, 文本型
.局部变量 Clsid, 字节集
.局部变量 iRet, 整数型
.局部变量 StringRegExp, 正则表达式
.局部变量 aRet, 搜索结果, , "0"

StringRegExp.创建 (“.*\.(\w{3,5})$”, )
aRet = StringRegExp.搜索全部 (sFileName)
sExt = aRet [1].取子匹配文本 (sFileName, 1, )
.如果真 (sExt = “”)
    sExt = “jpg”
.如果真结束
.判断开始 (sExt = “bmp”)  ' bmp
    pStr = “{557CF400-1A04-11D3-9A73-0000F81EF32E}”
.判断 (sExt = “jpg”)  ' jpg
    pStr = “{557CF401-1A04-11D3-9A73-0000F81EF32E}”
.判断 (sExt = “gif”)  ' gif
    pStr = “{557CF402-1A04-11D3-9A73-0000F81EF32E}”
.判断 (sExt = “tiff”)  ' tiff
    pStr = “{557CF405-1A04-11D3-9A73-0000F81EF32E}”
.判断 (sExt = “png”)  ' png
    pStr = “{557CF406-1A04-11D3-9A73-0000F81EF32E}”
.默认

.判断结束
Clsid = 取空白字节集 (16)
CLSIDFromString (A2W (pStr), Clsid)  ' 获取图像格式对应的Clsid
iRet = GdipSaveImageToFile (hImage, 编码_Ansi到Unicode (sFileName, ), Clsid, 0)
.如果 (iRet = 0)
    返回 (1)
.否则
    返回 (0)
.如果结束


.子程序 A2W, 字节集, , 将Ansi转成Unicode
.参数 欲转换的文本, 文本型
.局部变量 缓冲区, 字节集
.局部变量 缓冲区大小, 整数型

缓冲区大小 = MultiByteToWideChar (0, 0, 欲转换的文本, -1, {  }, 0) × 2
缓冲区 = 取空白字节集 (缓冲区大小)
MultiByteToWideChar (0, 0, 欲转换的文本, 取文本长度 (欲转换的文本), 缓冲区, 缓冲区大小)
返回 (缓冲区)

.子程序 _GDIPlus_ColorMatrixCreateGrayScale, cColorMatrix
.局部变量 iI, 整数型
.局部变量 iJ, 整数型
.局部变量 tCM, cColorMatrix
.局部变量 aLums, 小数型, , "4"

aLums [1] = 0.3086
aLums [2] = 0.6094
aLums [3] = 0.082
aLums [4] = 0
.变量循环首 (1, 3, 1, iI)
    .变量循环首 (1, 3, 1, iJ)
        tCM.cColorMatrix [iI] [iJ] = aLums [iI]
    .变量循环尾 ()
.变量循环尾 ()
tCM.cColorMatrix [19] = 1
tCM.cColorMatrix [25] = 1
返回 (tCM)

.子程序 编码_Ansi到Unicode, 字节集, 公开, 将Ansi码转换为Unicode码;成功返回转换后的字节集;
.参数 Ansi, 文本型, , 欲转换的Ansi文本
.参数 非标准Unicode编码, 逻辑型, 可空, 默认为假,为标准Unicode编码
.局部变量 数据2, 字节集
.局部变量 长度, 整数型

.如果真 (Ansi = “”)
    返回 ({  })
.如果真结束
长度 = MultiByteToWideChar (0, 0, Ansi, -1, {  }, 0)
数据2 = 取空白字节集 (长度 × 2)
MultiByteToWideChar (936, 0, Ansi, -1, 数据2, 长度 × 2)
.如果真 (非标准Unicode编码)
    数据2 = 取字节集左边 (数据2, 取字节集长度 (数据2) - 2)
.如果真结束
返回 (数据2)

.子程序 _GDIPlus_Startup, 整数型, 公开, 成功返回标志
.局部变量 tInput, GdiplusStartupInput
.局部变量 tToken, 整数型

tInput.GdiplusVersion = 1
GdiplusStartup (tToken, tInput, 0)
返回 (tToken)

@haijie1223

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有1位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
MP4视频文件驱动级模拟按键软件验证打印模块医院信息管理系统聊天工具抖音评论采集永辉生活登陆注册表操作位图斜切滑块协议新浪博客编辑框输入提示人工智能乐玩模块快手注册源码例子取文件列表水印自动下载链接器
最新评论