码栈开发手册(四)---编码方式开发(图片相关函数)

5.1 J_Pic_ReadText(图片路径/图片地址)

作用:抓取图片上的文字,可以是url地址或者是本地路径
返回值:图片上的文字,如果返回值为[OCR:Error]那么证明图片识别失败
例子:

Func Example33()
    ;声明一个名为$path1的局域变量,保存文本 "D:\1.jpg"
    Local $path1 = "D:\1.jpg"
    ;声明一个名为$path2的局域变量,保存文本 "http://img04.taobaocdn.com/bao/uploaded/i4/T1h8VkFX8XXXb1upjX.jpg"
    Local $path2 = "http://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 = 'http://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


本文转自码栈平台

上一篇:码栈开发手册(六)---实例演练(基础操作)


下一篇:码栈开发手册(四)---编码方式开发(文件相关函数)