閱讀768 返回首頁    go 阿裏雲 go 技術社區[雲棲]


碼棧開發手冊(四)---編碼方式開發(圖片相關函數)

5.1 J_Pic_ReadText(圖片路徑/圖片地址)

作用:抓取圖片上的文字,可以是url地址或者是本地路徑
返回值:圖片上的文字,如果返回值為[OCR:Error]那麼證明圖片識別失敗
例子:

Func Example33()
    ;聲明一個名為$path1的局域變量,保存文本 "D:\1.jpg"
    Local $path1 = "D:\1.jpg"
    ;聲明一個名為$path2的局域變量,保存文本 "https://img04.taobaocdn.com/bao/uploaded/i4/T1h8VkFX8XXXb1upjX.jpg"
    Local $path2 = "https://img04.taobaocdn.com/bao/uploaded/i4/T1h8VkFX8XXXb1upjX.jpg"
    ;使用此功能需要電腦裝有相應插件
    ;聲明一個名為$value1的局域變量,保存從$path1路徑的圖片中提取的中文文本
    Local $value1 = J_Pic_ReadText($path1, "中文")
    ;聲明一個名為$value2的局域變量,保存從$path2路徑的圖片中提取的英文文本
    Local $value2 = J_Pic_ReadText($path2, "英文")
    ;以係統信息提示框的形式顯示出$value1保存的數據
    J_MsgBox($value1)
    ;以係統信息提示框的形式顯示出$value2保存的數據
    J_MsgBox($value2)
EndFunc   ;==>Example33

5.2 J_Pic_WaterMark_Start(原始圖片地址,保存圖片地址)

作用:開啟目標圖片作為打水印的主圖,必須先使用此函數
返回值:無
例子:

Func Example40()
    ;截取屏幕起始坐標1,1 結束坐標為500,800 的屏幕矩形區域,並保存文件為D:\1.jpg
    J_Pic_Capture("D:\1.jpg", 1, 1, 500, 800)
    ;開始圖片處理,初始文件是"D:\1.jpg",處理之後打算把文件另存為"D:\2.jpg"
    J_Pic_WaterMark_Start("D:\1.jpg", "D:\2.jpg")
    ;在被處理圖片的100,50 像素處打上logo水印(水印路徑:D:\logo.png)
    J_Pic_WaterMark_Logo("D:\logo.png", 100, 50)
    ;在被處理圖片的400,400 像素處打上文本水印,文本字體為紅色,字體微軟雅黑,字號12號,帶下劃線的
    J_Pic_WaterMark_Text("taobao.com", 400, 400, 0xFFFF0000, "微軟雅黑", 12, "下劃線")
    ;在被處理圖片的450,450像素處打上文本水印,字型字號等都是默認的
    J_Pic_WaterMark_Text("copy right", 450, 450)
    ;結束打水印操作,設置保存的圖片清晰度為50%
    J_Pic_WaterMark_End(50)
    ;等比例設置圖片D:\2.jpg高度為1000,並另存為D:\3.jpg
    J_Pic_Resize("D:\2.jpg", "D:\3.jpg", 1000, "高度")
    ;等比例設置圖片D:\2.jpg寬度為2000,並另存為D:\4.jpg
    J_Pic_Resize("D:\2.jpg", "D:\4.jpg", 2000, "寬度")
    ;設置圖片D:\2.jpg寬度為700高度為1000,並另存為D:\5.jpg
    J_Pic_Resize("D:\2.jpg", "D:\5.jpg", 700, 1000)
EndFunc   ;==>Example40

5.3 J_Pic_WaterMark_Text(文本, X坐標,Y坐標,[顏色:0xff000000],[字體:宋體], [字符大小:12], [模式:正常/粗體/斜體/下劃線/刪除線])

作用:在已經打開的圖片中打文字水印
返回值:無
例子:

Func Example40()
    ;截取屏幕起始坐標1,1 結束坐標為500,800 的屏幕矩形區域,並保存文件為D:\1.jpg
    J_Pic_Capture("D:\1.jpg", 1, 1, 500, 800)
    ;開始圖片處理,初始文件是"D:\1.jpg",處理之後打算把文件另存為"D:\2.jpg"
    J_Pic_WaterMark_Start("D:\1.jpg", "D:\2.jpg")
    ;在被處理圖片的100,50 像素處打上logo水印(水印路徑:D:\logo.png)
    J_Pic_WaterMark_Logo("D:\logo.png", 100, 50)
    ;在被處理圖片的400,400 像素處打上文本水印,文本字體為紅色,字體微軟雅黑,字號12號,帶下劃線的
    J_Pic_WaterMark_Text("taobao.com", 400, 400, 0xFFFF0000, "微軟雅黑", 12, "下劃線")
    ;在被處理圖片的450,450像素處打上文本水印,字型字號等都是默認的
    J_Pic_WaterMark_Text("copy right", 450, 450)
    ;結束打水印操作,設置保存的圖片清晰度為50%
    J_Pic_WaterMark_End(50)
    ;等比例設置圖片D:\2.jpg高度為1000,並另存為D:\3.jpg
    J_Pic_Resize("D:\2.jpg", "D:\3.jpg", 1000, "高度")
    ;等比例設置圖片D:\2.jpg寬度為2000,並另存為D:\4.jpg
    J_Pic_Resize("D:\2.jpg", "D:\4.jpg", 2000, "寬度")
    ;設置圖片D:\2.jpg寬度為700高度為1000,並另存為D:\5.jpg
    J_Pic_Resize("D:\2.jpg", "D:\5.jpg", 700, 1000)
EndFunc   ;==>Example40

5.4 J_Pic_WaterMark_Logo(水印Logo路徑, X坐標, Y坐標)

作用:在已經打開的圖片中打LOGO水印
返回值:無
例子:

Func Example40()
    ;截取屏幕起始坐標1,1 結束坐標為500,800 的屏幕矩形區域,並保存文件為D:\1.jpg
    J_Pic_Capture("D:\1.jpg", 1, 1, 500, 800)
    ;開始圖片處理,初始文件是"D:\1.jpg",處理之後打算把文件另存為"D:\2.jpg"
    J_Pic_WaterMark_Start("D:\1.jpg", "D:\2.jpg")
    ;在被處理圖片的100,50 像素處打上logo水印(水印路徑:D:\logo.png)
    J_Pic_WaterMark_Logo("D:\logo.png", 100, 50)
    ;在被處理圖片的400,400 像素處打上文本水印,文本字體為紅色,字體微軟雅黑,字號12號,帶下劃線的
    J_Pic_WaterMark_Text("taobao.com", 400, 400, 0xFFFF0000, "微軟雅黑", 12, "下劃線")
    ;在被處理圖片的450,450像素處打上文本水印,字型字號等都是默認的
    J_Pic_WaterMark_Text("copy right", 450, 450)
    ;結束打水印操作,設置保存的圖片清晰度為50%
    J_Pic_WaterMark_End(50)
    ;等比例設置圖片D:\2.jpg高度為1000,並另存為D:\3.jpg
    J_Pic_Resize("D:\2.jpg", "D:\3.jpg", 1000, "高度")
    ;等比例設置圖片D:\2.jpg寬度為2000,並另存為D:\4.jpg
    J_Pic_Resize("D:\2.jpg", "D:\4.jpg", 2000, "寬度")
    ;設置圖片D:\2.jpg寬度為700高度為1000,並另存為D:\5.jpg
    J_Pic_Resize("D:\2.jpg", "D:\5.jpg", 700, 1000)
EndFunc   ;==>Example40

5.5 J_Pic_WaterMark_End([圖片品質:1-100]) 作用:保存打水印的圖片並結束本張圖片的圖形處理

作用:開啟目標圖片作為打水印的主圖,必須先使用此函數
返回值:無
例子:

Func Example40()
    ;截取屏幕起始坐標1,1 結束坐標為500,800 的屏幕矩形區域,並保存文件為D:\1.jpg
    J_Pic_Capture("D:\1.jpg", 1, 1, 500, 800)
    ;開始圖片處理,初始文件是"D:\1.jpg",處理之後打算把文件另存為"D:\2.jpg"
    J_Pic_WaterMark_Start("D:\1.jpg", "D:\2.jpg")
    ;在被處理圖片的100,50 像素處打上logo水印(水印路徑:D:\logo.png)
    J_Pic_WaterMark_Logo("D:\logo.png", 100, 50)
    ;在被處理圖片的400,400 像素處打上文本水印,文本字體為紅色,字體微軟雅黑,字號12號,帶下劃線的
    J_Pic_WaterMark_Text("taobao.com", 400, 400, 0xFFFF0000, "微軟雅黑", 12, "下劃線")
    ;在被處理圖片的450,450像素處打上文本水印,字型字號等都是默認的
    J_Pic_WaterMark_Text("copy right", 450, 450)
    ;結束打水印操作,設置保存的圖片清晰度為50%
    J_Pic_WaterMark_End(50)
    ;等比例設置圖片D:\2.jpg高度為1000,並另存為D:\3.jpg
    J_Pic_Resize("D:\2.jpg", "D:\3.jpg", 1000, "高度")
    ;等比例設置圖片D:\2.jpg寬度為2000,並另存為D:\4.jpg
    J_Pic_Resize("D:\2.jpg", "D:\4.jpg", 2000, "寬度")
    ;設置圖片D:\2.jpg寬度為700高度為1000,並另存為D:\5.jpg
    J_Pic_Resize("D:\2.jpg", "D:\5.jpg", 700, 1000)
EndFunc   ;==>Example40

5.6 J_Pic_to_text(cdn上圖片url)

作用:識別alicnd上圖片上文字
返回值:-1表示異常,0表示圖片正在識別中,成功返回圖片文字數組
例子:

 func test()
    local $imgPath = 'https://i.mmcdn.cn/simba/img/TB1Kvv6OXXXXXcCXFXXSutbFXXX.jpg'
    local $textResult = J_Pic_to_text($imgPath)
    if $textResult = - 1 then 
        local $msg = J_GetErrorMsg()
        j_log('異常信息:'&$msg)
    ElseIf $textResult = 0 then 
        J_MsgBox("圖片正在分析中")
    else 
      ;獲取文字
      for $i = 0 to UBound($textResult)-1
        J_LOG('圖片上的文字:'&$textResult[$i])
      next
    endif
 endfunc


本文轉自碼棧平台

最後更新:2017-05-13 08:46:36

  上一篇:go  碼棧開發手冊(四)---編碼方式開發(字符串處理相關函數)
  下一篇:go  碼棧開發手冊(四)---編碼方式開發(日期相關函數)