溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

易語(yǔ)言如何實(shí)現(xiàn)提取ICO圖標(biāo)并支持多種圖像格式轉(zhuǎn)換功能

發(fā)布時(shí)間:2021-06-16 16:11:13 來(lái)源:億速云 閱讀:1064 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了易語(yǔ)言如何實(shí)現(xiàn)提取ICO圖標(biāo)并支持多種圖像格式轉(zhuǎn)換功能,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

DLL命令表

.版本 2
.DLL命令 拷貝內(nèi)存_BITMAPINFOHEADER, 整數(shù)型, "kernel32", "RtlMoveMemory", , RtlMoveMemory
  .參數(shù) 目標(biāo)數(shù)據(jù)地址, 字節(jié)集, 傳址, lpvDest
  .參數(shù) 源數(shù)據(jù), BITMAPINFOHEADER, 傳址, lpvSource
  .參數(shù) 尺寸, 整數(shù)型, , 40cbCopy
.DLL命令 拷貝內(nèi)存_ICONFILEHEADER, 整數(shù)型, "kernel32", "RtlMoveMemory", , RtlMoveMemory
  .參數(shù) 目標(biāo)數(shù)據(jù)地址, 字節(jié)集, 傳址, lpvDest
  .參數(shù) 源數(shù)據(jù), ICONFILEHEADER, , lpvSource
  .參數(shù) 尺寸, 整數(shù)型, , 22cbCopy

自定義數(shù)據(jù)類(lèi)型表

.版本 2
.數(shù)據(jù)類(lèi)型 ICONFILEHEADER, , 文件頭22
  .成員 idReserved, 短整數(shù)型, , , 為0
  .成員 idType, 短整數(shù)型, , , 為1圖標(biāo),2為鼠標(biāo)
  .成員 idCount, 短整數(shù)型, , , 文件中圖標(biāo)個(gè)數(shù),為1
  .成員 bWidth, 字節(jié)型, , , 寬,為16或32
  .成員 bHeight, 字節(jié)型, , , 高,為16或32
  .成員 bColorCount, 字節(jié)型, , , 調(diào)色盤(pán)顏色數(shù)量:16或255 或0
  .成員 bReserved, 字節(jié)型, , , 為0
  .成員 wPlanes, 短整數(shù)型, , , idType為2,鼠標(biāo)熱點(diǎn)左邊
  .成員 wBitCount, 短整數(shù)型, , , 每個(gè)像素占的位數(shù) .idType為2,鼠標(biāo)熱點(diǎn)頂邊
  .成員 dwBytesInRes, 整數(shù)型, , , 圖標(biāo)文件后四項(xiàng)總字節(jié)數(shù)
  .成員 dwImageOffset, 整數(shù)型, , , 圖標(biāo)文件頭長(zhǎng)度,為22
.數(shù)據(jù)類(lèi)型 BITMAPINFOHEADER, , 信息頭40
  .成員 biSize, 整數(shù)型, , , 信息頭的長(zhǎng)度,為40
  .成員 biWidth, 整數(shù)型, , , 寬
  .成員 biHeight, 整數(shù)型, , , 掃描兩遍,值為實(shí)實(shí)際高度的2 倍
  .成員 iPlanes, 短整數(shù)型, , , 為1
  .成員 biBitCount, 短整數(shù)型, , , 每個(gè)像素占的位數(shù)
  .成員 biCompression, 整數(shù)型, , , 為0
  .成員 biSizeImage, 整數(shù)型, , , 圖標(biāo)文件后三項(xiàng)總字節(jié)數(shù)
  .成員 biXPelsPerMeter, 整數(shù)型, , , 為0
  .成員 biYPelsPerMeter, 整數(shù)型, , , 為0
  .成員 biClrUsed, 整數(shù)型, , , 為0
  .成員 biClrImportant, 整數(shù)型, , , 為0
.數(shù)據(jù)類(lèi)型 RGBDATA, , 圖像信息中每一個(gè)像素包含的RGB
  .成員 B, 字節(jié)型
  .成員 R, 字節(jié)型
  .成員 G, 字節(jié)型
.數(shù)據(jù)類(lèi)型 圖像大小
  .成員 寬度, 整數(shù)型
  .成員 高度, 整數(shù)型

提取ICO圖標(biāo)

.版本 2
.支持庫(kù) edroptarget
.支持庫(kù) iext2
.支持庫(kù) eAPI
.支持庫(kù) iext5
.支持庫(kù) shell
.支持庫(kù) eImgConverter
.支持庫(kù) BmpOperate
.程序集 窗口程序集1
.程序集變量 程序集_欲刪除的圖標(biāo), 文本型
.程序集變量 程序集_文件路徑, 文本型
.程序集變量 程序集_圖像大小, 圖像大小
.子程序 __啟動(dòng)窗口_創(chuàng)建完畢
拖放對(duì)象1.注冊(cè)拖放控件 (_啟動(dòng)窗口.取窗口句柄 ())
檢測(cè)圖像欲轉(zhuǎn)換大小 ()
.子程序 _拖放對(duì)象1_得到文件
.參數(shù) 接收到的文件路徑, 文本型
編輯框1.內(nèi)容 = 接收到的文件路徑
.子程序 _按鈕_提取圖標(biāo)_被單擊
.局部變量 i, 整數(shù)型
.局部變量 圖標(biāo)資源, 字節(jié)集
.局部變量 后綴名, 文本型
.局部變量 是否空?qǐng)D標(biāo), 字節(jié)集
.局部變量 畫(huà)板的底圖, 字節(jié)集
.如果真 (尋找文本 (程序集_文件路徑, “.”, , 真) = -1)
  信息框 (“文件路徑不正確,請(qǐng)嘗試更換文件再試!”, #錯(cuò)誤圖標(biāo), )
  返回 ()
.如果真結(jié)束
.計(jì)次循環(huán)首 (取文件內(nèi)圖標(biāo)數(shù) (程序集_文件路徑), i)
  提取資源文件圖標(biāo) (程序集_文件路徑, 0, 取運(yùn)行目錄 () + “\” + 到文本 (i) + “.ico”, i)
.計(jì)次循環(huán)尾 ()
.如果真 (取文件內(nèi)圖標(biāo)數(shù) (程序集_文件路徑) ≠ 0)
  氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “圖標(biāo)提取成功?!? -1, )
.如果真結(jié)束
程序集_欲刪除的圖標(biāo) = 編輯框1.內(nèi)容
' -------上面代碼提取平常的 EXE、DLL、ICL、ICO。圖標(biāo) 下面的是為了將圖像轉(zhuǎn)換成為BMP后在轉(zhuǎn)換ICO圖標(biāo)----------
后綴名 = 到小寫(xiě) (取文本右邊 (程序集_文件路徑, 4))
.如果真 (后綴名 ≠ “.exe” 且 后綴名 ≠ “.dll” 且 后綴名 ≠ “.icl” 且 后綴名 ≠ “.ico”)
  畫(huà)板1.底圖 = 讀入文件 (編輯框1.內(nèi)容)
  畫(huà)板的底圖 = 畫(huà)板1.底圖
  畫(huà)板1.寬度 = 程序集_圖像大小.寬度
  畫(huà)板1.高度 = 程序集_圖像大小.高度
  畫(huà)板1.底圖方式 = #縮放圖片
  寫(xiě)到文件 (取特定目錄 (11) + “\” + 取文本右邊 (后綴名, 1), 畫(huà)板1.取圖片 (程序集_圖像大小.寬度, 程序集_圖像大小.高度))
  轉(zhuǎn)換到BMP (取特定目錄 (11) + “\” + 取文本右邊 (后綴名, 1), 取特定目錄 (11) + “\” + 取文本右邊 (后綴名, 1) + “.bmp”)
  程序集_文件路徑 = 取特定目錄 (11) + “\” + 取文本右邊 (后綴名, 1) + “.bmp”
  .如果真 (取文本右邊 (程序集_文件路徑, 4) = “.bmp”)
    BMP轉(zhuǎn)ICO (讀入文件 (程序集_文件路徑), 圖標(biāo)資源)
    寫(xiě)到文件 (取運(yùn)行目錄 () + “\1.ico”, 圖標(biāo)資源)
    是否空?qǐng)D標(biāo) = 讀入文件 (取運(yùn)行目錄 () + “\1.ico”)
    .如果真 (是否空?qǐng)D標(biāo) = { }) ' 如果方法一失敗 自動(dòng)轉(zhuǎn)換方法二轉(zhuǎn)ico
      BMP轉(zhuǎn)ICO2 (讀入文件 (程序集_文件路徑), 圖標(biāo)資源)
      寫(xiě)到文件 (取運(yùn)行目錄 () + “\1.ico”, 圖標(biāo)資源)
    .如果真結(jié)束
  .如果真結(jié)束
  .如果 (畫(huà)板的底圖 = { })
    氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “圖標(biāo)提取失敗?!? -1, )
  .否則
    氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “圖標(biāo)提取成功?!? -1, )
  .如果結(jié)束
.如果真結(jié)束
畫(huà)板1.底圖 = { }
.子程序 _編輯框1_內(nèi)容被改變
.局部變量 圖標(biāo)數(shù), 整數(shù)型
程序集_文件路徑 = 編輯框1.內(nèi)容
.如果真 (尋找文本 (程序集_文件路徑, “.lnk”, , 真) ≠ -1)
  編輯框1.內(nèi)容 = 查詢(xún)快捷方式 (程序集_文件路徑)
.如果真結(jié)束
圖標(biāo)數(shù) = 取文件內(nèi)圖標(biāo)數(shù) (程序集_文件路徑)
標(biāo)題 = “發(fā)現(xiàn)圖標(biāo)數(shù)為:” + 到文本 (圖標(biāo)數(shù)) + “個(gè)”
編輯框1.被選擇字符數(shù) = 取文本長(zhǎng)度 (程序集_文件路徑)
.如果真 (圖標(biāo)數(shù) = 0)
  氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “文件內(nèi)沒(méi)有發(fā)現(xiàn)可用圖標(biāo),如果放入的是圖像將自動(dòng)轉(zhuǎn)換成為圖標(biāo)文件” + #換行符 + “如果不是圖像將會(huì)轉(zhuǎn)換失??!”, -1, 真)
.如果真結(jié)束
.子程序 _按鈕_刪除圖標(biāo)_被單擊
.局部變量 i, 整數(shù)型
.如果真 (信息框 (“刪除的僅是剛才提取的圖標(biāo)而且必須是非圖像提取的圖標(biāo)”, #是否鈕, ) = #是鈕)
  i = 取文件內(nèi)圖標(biāo)數(shù) (程序集_欲刪除的圖標(biāo)) ' 提取文件圖標(biāo)按鈕被單擊后 程序集才有會(huì)有數(shù)據(jù)
  .如果真 (i = 0)
    返回 ()
  .如果真結(jié)束
  .計(jì)次循環(huán)首 (取文件內(nèi)圖標(biāo)數(shù) (程序集_欲刪除的圖標(biāo)), i)
    刪除文件 (取運(yùn)行目錄 () + “\” + 到文本 (i) + “.ico”)
  .計(jì)次循環(huán)尾 ()
  程序集_欲刪除的圖標(biāo) = “”
.如果真結(jié)束
.子程序 _按鈕_選擇文件_被單擊
通用對(duì)話(huà)框1.初始目錄 = 取特定目錄 (3)
通用對(duì)話(huà)框1.不改變目錄 = 真
通用對(duì)話(huà)框1.過(guò)濾器 = “可執(zhí)行文件(*.exe)|*.exe|動(dòng)態(tài)鏈接庫(kù)(*.dll)|*.dll|圖標(biāo)資源庫(kù)(*.icl)|*.icl|圖像文件(*.bmp;*.jpg;*.jpeg;*.gif;*.ico)|*.bmp;*.jpg;*.jpeg;*.gif;*.ico|所有文件(*.*)|*.*”
.如果真 (通用對(duì)話(huà)框1.打開(kāi) () = 真)
  編輯框1.內(nèi)容 = 通用對(duì)話(huà)框1.文件名
.如果真結(jié)束
.子程序 BMP轉(zhuǎn)ICO, 邏輯型, 公開(kāi), 用位圖轉(zhuǎn)換,非本人所寫(xiě)
.參數(shù) 被轉(zhuǎn)BMP數(shù)據(jù), 字節(jié)集
.參數(shù) 獲得ICO數(shù)據(jù), 字節(jié)集, 參考
.參數(shù) 透明色, 整數(shù)型, 可空, 默認(rèn)為白色
.參數(shù) CUR光標(biāo), 邏輯型, 可空, 真為CUR光標(biāo),假為圖標(biāo)
.參數(shù) 指針左熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開(kāi)始
.參數(shù) 指針頂熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開(kāi)始
.局部變量 位圖, 位圖
.局部變量 IFH, ICONFILEHEADER
.局部變量 BIH, BITMAPINFOHEADER
.局部變量 RGBD, 字節(jié)集
.局部變量 FBY, 字節(jié)集
.局部變量 I
.局部變量 J
.局部變量 K1
.局部變量 K2
.局部變量 BY
.局部變量 BYY
.局部變量 BY2
.局部變量 字節(jié)集, 字節(jié)集
.局部變量 寬度, 整數(shù)型
.局部變量 高度, 整數(shù)型
.局部變量 A, 整數(shù)型
.局部變量 TMZ, 整數(shù)型
.局部變量 DD, 整數(shù)型
.局部變量 補(bǔ)碼, 整數(shù)型
.如果真 (位圖.載入數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù)) = 假)
  返回 (假)
.如果真結(jié)束
寬度 = 位圖.取寬度 ()
.如果真 (寬度 > 255)
  返回 (假)
.如果真結(jié)束
高度 = 位圖.取高度 ()
.如果真 (高度 > 255)
  返回 (假)
.如果真結(jié)束
.如果 (寬度 % 32 ≠ 0)
  TMZ = 寬度 ÷ 32 + 1
.否則
  TMZ = 寬度 ÷ 32
.如果結(jié)束
TMZ = TMZ × 高度
補(bǔ)碼 = 寬度 % 4
IFH.idReserved = 0
IFH.idType = 選擇 (CUR光標(biāo), 2, 1)
IFH.idCount = 1
IFH.bHeight = 高度
IFH.bWidth = 寬度
IFH.bColorCount = 0
IFH.bReserved = 0
IFH.wPlanes = 選擇 (CUR光標(biāo), 指針左熱點(diǎn), 1)
IFH.wBitCount = 選擇 (CUR光標(biāo), 指針頂熱點(diǎn), 24)
IFH.dwBytesInRes = 寬度 × 高度 × 3 + TMZ × 4 + 補(bǔ)碼 × 高度 + 40 ' 3240
IFH.dwImageOffset = 22 ' 取文本長(zhǎng)度 (ifh)
BIH.biSize = 40 ' 取文本長(zhǎng)度 (bih)
BIH.biWidth = 寬度
BIH.biHeight = 高度 × 2 ' !!!
BIH.iPlanes = 1
BIH.biBitCount = 24
BIH.biCompression = 0
BIH.biSizeImage = 寬度 × 高度 × 3 + 補(bǔ)碼 × 高度 ' 3200
BIH.biXPelsPerMeter = 0
BIH.biYPelsPerMeter = 0
BIH.biClrUsed = 0
BIH.biClrImportant = 0
.如果 (是否為空 (透明色))
  BY = 16777215
.否則
  BY = 透明色
.如果結(jié)束
RGBD = 取空白字節(jié)集 (BIH.biSizeImage)
FBY = 取空白字節(jié)集 (TMZ × 4)
K1 = 0
K2 = 1
A = 128
.計(jì)次循環(huán)首 (高度, I) ' 從左下角逐行掃描
  .計(jì)次循環(huán)首 (寬度, J)
    BYY = 位圖.取某點(diǎn)顏色 (J - 1, 高度 - I) ' 獲得圖像上某一點(diǎn)的顏色Long值
    .如果 (BYY ≠ BY) ' 如果該點(diǎn)為透明色
      RGBD [K1 + 3] = 位與 (BYY, 255) ' 取整 (BYY ÷ 65536)
      RGBD [K1 + 2] = 位與 (右移 (BYY, 8), 255)
      RGBD [K1 + 1] = 右移 (BYY, 16)
    .否則
      BY2 = BY2 + A
    .如果結(jié)束
    K1 = K1 + 3
    A = A ÷ 2
    .如果真 (A = 0)
      FBY [K2] = BY2
      K2 = K2 + 1
      A = 128
      BY2 = 0
    .如果真結(jié)束
  .計(jì)次循環(huán)尾 ()
  .如果真 (A ≠ 128)
    FBY [K2] = BY2
    K2 = K2 + 1
    A = 128
    BY2 = 0
  .如果真結(jié)束
  DD = K2 % 4
  .如果真 (DD ≠ 1)
    K2 = K2 + 5 - DD
  .如果真結(jié)束
  K1 = K1 + 補(bǔ)碼
.計(jì)次循環(huán)尾 ()
獲得ICO數(shù)據(jù) = 取空白字節(jié)集 (22)
拷貝內(nèi)存_ICONFILEHEADER (獲得ICO數(shù)據(jù), IFH, 22)
字節(jié)集 = 取空白字節(jié)集 (40)
拷貝內(nèi)存_BITMAPINFOHEADER (字節(jié)集, BIH, 40)
獲得ICO數(shù)據(jù) = 獲得ICO數(shù)據(jù) + 字節(jié)集 + RGBD + FBY
返回 (真)
.子程序 BMP轉(zhuǎn)ICO2, 邏輯型, 公開(kāi), 用數(shù)據(jù)轉(zhuǎn)換,非本人所寫(xiě)
.參數(shù) 被轉(zhuǎn)BMP數(shù)據(jù), 字節(jié)集
.參數(shù) 獲得ICO數(shù)據(jù), 字節(jié)集, 參考
.參數(shù) 透明色, 整數(shù)型, 可空, 默認(rèn)為白色
.參數(shù) CUR光標(biāo), 邏輯型, 可空, 真為CUR光標(biāo),假為圖標(biāo)
.參數(shù) 指針左熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開(kāi)始
.參數(shù) 指針頂熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開(kāi)始
.局部變量 BMP數(shù)據(jù)2, 字節(jié)集
.局部變量 IFH, ICONFILEHEADER
.局部變量 BIH, BITMAPINFOHEADER
.局部變量 RGBD, 字節(jié)集
.局部變量 FBY, 字節(jié)集
.局部變量 I
.局部變量 J
.局部變量 K1
.局部變量 K2
.局部變量 BY, RGBDATA
.局部變量 BYY, RGBDATA
.局部變量 BY2
.局部變量 字節(jié)集, 字節(jié)集
.局部變量 寬度, 整數(shù)型
.局部變量 高度, 整數(shù)型
.局部變量 長(zhǎng)度, 整數(shù)型
.局部變量 A, 整數(shù)型
.局部變量 TMZ, 整數(shù)型
.局部變量 DD, 整數(shù)型
.局部變量 補(bǔ)碼, 整數(shù)型
.如果真 (取字節(jié)集長(zhǎng)度 (被轉(zhuǎn)BMP數(shù)據(jù)) < 54 或 被轉(zhuǎn)BMP數(shù)據(jù) [1] ≠ 66 或 被轉(zhuǎn)BMP數(shù)據(jù) [2] ≠ 77) ' BM6
  返回 (假)
.如果真結(jié)束
寬度 = 取字節(jié)集數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù), #整數(shù)型, 19)
高度 = 取字節(jié)集數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù), #整數(shù)型, 23)
長(zhǎng)度 = 取字節(jié)集數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù), #整數(shù)型, 35)
.如果真 (寬度 > 255)
  返回 (假)
.如果真結(jié)束
.如果真 (高度 > 255)
  返回 (假)
.如果真結(jié)束
BMP數(shù)據(jù)2 = 取字節(jié)集中間 (被轉(zhuǎn)BMP數(shù)據(jù), 55, 長(zhǎng)度)
.如果 (寬度 % 32 ≠ 0)
  TMZ = 寬度 ÷ 32 + 1
.否則
  TMZ = 寬度 ÷ 32
.如果結(jié)束
TMZ = TMZ × 高度
補(bǔ)碼 = 寬度 % 4
IFH.idReserved = 0
IFH.idType = 選擇 (CUR光標(biāo), 2, 1)
IFH.idCount = 1
IFH.bHeight = 高度
IFH.bWidth = 寬度
IFH.bColorCount = 0
IFH.bReserved = 0
IFH.wPlanes = 選擇 (CUR光標(biāo), 指針左熱點(diǎn), 1)
IFH.wBitCount = 選擇 (CUR光標(biāo), 指針頂熱點(diǎn), 24)
IFH.dwBytesInRes = 寬度 × 高度 × 3 + TMZ × 4 + 補(bǔ)碼 × 高度 + 40 ' 3240
IFH.dwImageOffset = 22 ' 取文本長(zhǎng)度 (ifh)
BIH.biSize = 40 ' 取文本長(zhǎng)度 (bih)
BIH.biWidth = 寬度
BIH.biHeight = 高度 × 2 ' !!!
BIH.iPlanes = 1
BIH.biBitCount = 24
BIH.biCompression = 0
BIH.biSizeImage = 寬度 × 高度 × 3 + 補(bǔ)碼 × 高度 ' 3200
BIH.biXPelsPerMeter = 0
BIH.biYPelsPerMeter = 0
BIH.biClrUsed = 0
BIH.biClrImportant = 0
.如果真 (取字節(jié)集長(zhǎng)度 (BMP數(shù)據(jù)2) < BIH.biSizeImage)
  返回 (假)
.如果真結(jié)束
.如果 (是否為空 (透明色))
  BY.R = 255
  BY.G = 255
  BY.B = 255
.否則
  BY.R = 位與 (透明色, 255) ' 取整 (BYY ÷ 65536)
  BY.G = 位與 (右移 (透明色, 8), 255)
  BY.B = 右移 (透明色, 16)
.如果結(jié)束
RGBD = 取空白字節(jié)集 (BIH.biSizeImage)
FBY = 取空白字節(jié)集 (TMZ × 4)
K1 = 0
K2 = 1
A = 128
.計(jì)次循環(huán)首 (高度, I) ' 從左下角逐行掃描
  .計(jì)次循環(huán)首 (寬度, J)
    BYY.R = BMP數(shù)據(jù)2 [K1 + 3]
    BYY.G = BMP數(shù)據(jù)2 [K1 + 2]
    BYY.B = BMP數(shù)據(jù)2 [K1 + 1]
    .如果 (BYY.R ≠ BY.R 或 BYY.G ≠ BY.G 或 BYY.B ≠ BY.B) ' 如果該點(diǎn)為透明色
      RGBD [K1 + 3] = BYY.R
      RGBD [K1 + 2] = BYY.G
      RGBD [K1 + 1] = BYY.B
    .否則
      BY2 = BY2 + A
    .如果結(jié)束
    K1 = K1 + 3
    A = A ÷ 2
    .如果真 (A = 0)
      FBY [K2] = BY2
      K2 = K2 + 1
      A = 128
      BY2 = 0
    .如果真結(jié)束
  .計(jì)次循環(huán)尾 ()
  .如果真 (A ≠ 128)
    FBY [K2] = BY2
    K2 = K2 + 1
    A = 128
    BY2 = 0
  .如果真結(jié)束
  DD = K2 % 4
  .如果真 (DD ≠ 1)
    K2 = K2 + 5 - DD
  .如果真結(jié)束
  K1 = K1 + 補(bǔ)碼
.計(jì)次循環(huán)尾 ()
獲得ICO數(shù)據(jù) = 取空白字節(jié)集 (22)
拷貝內(nèi)存_ICONFILEHEADER (獲得ICO數(shù)據(jù), IFH, 22)
字節(jié)集 = 取空白字節(jié)集 (40)
拷貝內(nèi)存_BITMAPINFOHEADER (字節(jié)集, BIH, 40)
獲得ICO數(shù)據(jù) = 獲得ICO數(shù)據(jù) + 字節(jié)集 + RGBD + FBY
返回 (真)
.子程序 檢測(cè)圖像欲轉(zhuǎn)換大小
.如果真 (單選框_16.選中 = 真)
  程序集_圖像大小.寬度 = 16
  程序集_圖像大小.高度 = 16
  返回 ()
.如果真結(jié)束
.如果真 (單選框_32.選中 = 真)
  程序集_圖像大小.寬度 = 32
  程序集_圖像大小.高度 = 32
  返回 ()
.如果真結(jié)束
.如果真 (單選框_64.選中 = 真)
  程序集_圖像大小.寬度 = 64
  程序集_圖像大小.高度 = 64
  返回 ()
.如果真結(jié)束
.如果真 (單選框_128.選中 = 真)
  程序集_圖像大小.寬度 = 128
  程序集_圖像大小.高度 = 128
  返回 ()
.如果真結(jié)束
.子程序 _單選框_16_被單擊
檢測(cè)圖像欲轉(zhuǎn)換大小 ()
.子程序 _單選框_32_被單擊
檢測(cè)圖像欲轉(zhuǎn)換大小 ()
.子程序 _單選框_64_被單擊
檢測(cè)圖像欲轉(zhuǎn)換大小 ()
.子程序 _單選框_128_被單擊
檢測(cè)圖像欲轉(zhuǎn)換大小 ()
.子程序 __啟動(dòng)窗口_將被銷(xiāo)毀
刪除文件 (取特定目錄 (11) + “\” + 取文本右邊 (到小寫(xiě) (取文本右邊 (程序集_文件路徑, 4)), 1))
刪除文件 (取特定目錄 (11) + “\” + 取文本右邊 (到小寫(xiě) (取文本右邊 (程序集_文件路徑, 4)), 1) + “.bmp”)

運(yùn)行結(jié)果:

易語(yǔ)言如何實(shí)現(xiàn)提取ICO圖標(biāo)并支持多種圖像格式轉(zhuǎn)換功能

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“易語(yǔ)言如何實(shí)現(xiàn)提取ICO圖標(biāo)并支持多種圖像格式轉(zhuǎn)換功能”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI