【photoshop CEP插件】 OCR文字识别

这是一个photoshop面板插件,我练手的,本插件完全开源,不加密,用户可以学习了解HTML面板的运作流程。

插件目前实现文字识别和二维码识别,如果需要识别其他类型,可以参考百度AI。

插件下载:一个photoshop CEP插件OCR文字识别

OCR采用的百度AI OCR识别node.js接口

APP_ID = 17594920
API_KEY = puMFv72xqCYV2jdcSlXgtFvm
SECRET_KEY = v5XHtqKXEm0p6ehPZrXIXrftDvocyv1m
/*********************************************/
百度OCR 密钥由Greless@qq.com 提供测试, 用户可自行前往https://ai.baidu.com/docs#/Auth/top 申请。
通用文字识别        免费使用    50000次/天免费
 
通用文字识别(含位置信息版)    免费使用    500次/天免费
 
通用文字识别(高精度版)    免费使用    500次/天免费

通用文字识别(高精度含位置版)免费使用    50次/天免费

二维码识别        免费使用    剩余免费1000次 
/*********************************************/

点击开始识别,识别的文字在PS中生成图层名称,同时在桌面生成OCR.txt文档。
OCR插件仅支持CC2018以上。CC2018,2019,2020,2021版本测试通过。

主要js代码:


var Ocr = function()
{  	

try{
	var cs= new CSInterface();
 	var fs = require("fs");
	var extensionPath= cs.getSystemPath(SystemPath.EXTENSION);
  
	var ocrType=document.getElementById("ocrType"); 
	//var	selectedIndex=ocrType.selectedIndex;
	var check0=document.getElementById("check0");
	var check1=document.getElementById("check1");
	var check2=document.getElementById("check2");
	//	alert(checkSelection.checked)
	// cs.evalScript('alert("'+a+'")');
 
		
		 /* // 持久化运行
		  var event = new CSEvent();//创建一个事件
		  event.type = "com.adobe.PhotoshopPersistent"; //注册持久化运行事件
		  event.scope = "APPLICATION";
		  event.extensionId = cs.getExtensionID(); // 我们的扩展 ID
		  cs.dispatchEvent(event); //发送事件让宿主持久化运行我们的扩展	   
		
		*/
		
	
	  var Path= undefined;
	 var p1 = new Promise(function (resolve, reject) {
		 
	 if(check0.checked)
		cs.evalScript('SaveSelection()',function(result){resolve(result); }); 	 
	else if(check1.checked)
		cs.evalScript('SaveCurrentLayer()',function(result){resolve(result);  }); 	
	else if(check2.checked)
		cs.evalScript('SaveAllLayer()',function(result){resolve(result);  }); 	 
	else	 
		cs.evalScript('SaveAllLayer()',function(result){resolve(result);  }); 	
   
});

var p2 = p1.then(function (result) {
   // alert('成功:' + result);
	Path=result;
	if(result=="undefined" || result==undefined ) 		 
	{	
		alert('失败:' + result);
		return;
	} 
	 
	if(ocrType.selectedIndex==4)
		BaiduAIQRcode(Path,ocrType.selectedIndex);
	else
		BaiduAI(Path,ocrType.selectedIndex);
});
var p3 = p2.catch(function (reason) {
    alert('失败:' + reason);
});
 
	}catch(e){alert(e);}; 
}

function BaiduAI(Path,Index)
{
	try{
	var cs= new CSInterface();
 	var fs = require("fs");
	var AipOcrClient = require("baidu-aip-sdk").ocr;	  
		
	// 设置APPID/AK/SK
	var APP_ID = "17594920";
	var API_KEY = "puMFv72xqCYV2jdcSlXgtFvm";
	var SECRET_KEY = "v5XHtqKXEm0p6ehPZrXIXrftDvocyv1m";

	// 新建一个对象,建议只保存一个对象调用服务接口
	var client = new AipOcrClient(APP_ID, API_KEY, SECRET_KEY);
	var HttpClient = require("baidu-aip-sdk").HttpClient;
	  
	// 设置request库的一些参数,例如代理服务地址,超时时间等
	// request参数请参考 https://github.com/request/request#requestoptions-callback
	HttpClient.setRequestOptions({timeout: 5000});

	// 也可以设置拦截每次请求(设置拦截后,调用的setRequestOptions设置的参数将不生效),
	// 可以按需修改request参数(无论是否修改,必须返回函数调用参数)
	// request参数请参考 https://github.com/request/request#requestoptions-callback
	HttpClient.setRequestInterceptor(function(requestOptions) {
		// 查看参数
		console.log(requestOptions)
		// 修改参数
		requestOptions.timeout = 5000;
		// 返回参数
		return requestOptions;
	});

	 var fs = require('fs');
 
	var image = fs.readFileSync(Path).toString("base64");

	// 调用通用文字识别, 图片参数为本地图片	 
	//https://ai.baidu.com/docs#/OCR-Node-SDK/top
	//普通识别:generalBasic;高精度:accurateBasic ;位置:generalUrl;高精度位置:accurate ;二维码:qrcode
	if(Index==0)
		var ocrParam=client.generalBasic(image);
	else if(Index==1)
		var ocrParam=client.accurateBasic(image);
	else if(Index==2)
		var ocrParam=client.generalUrl(image);
	else if(Index==3)
		var ocrParam=client.accurate(image);
	else
		alert("未定义识别模式")

	ocrParam.then(function(result) {		
		 
		 var error=result.error_code;
		 if(error!="undefined" &&error!=undefined ) 		 
			 alert(JSON.stringify(result)); 
		 
		 
		 // 打印识别数据
		  var num=result.words_result_num;
		 for(var i=0;i<num;i++)
		 {
			 var name=result.words_result[i].words;	
			 
			 var location=result.words_result[i].location;
			  if(location!=undefined && location!="undefined")
			  {
				 name=name+" left:"+ location.left+" top:"+ location.top+" width:"+ location.width+" height:"+ location.height+" "
			  }	
			  
			cs.evalScript('addLayerText("'+name+'")');  
			//	写到桌面
			cs.evalScript('WriteData("'+name+'")');  
		 }
		 
	}).catch(function(err) {
		// 如果发生网络错误
		//alert(err,"err");
		alert("网络错误","err");
		//cs.evalScript('alert("'+err+'")');		
	});
	
		}catch(e){alert(e);}; 
}
 
 
 function BaiduAIQRcode(Path,Index)
{
	try{
	var cs= new CSInterface();
 	var fs = require("fs");
	var AipOcrClient = require("baidu-aip-sdk").ocr;	  
		
	// 设置APPID/AK/SK
	var APP_ID = "17594920";
	var API_KEY = "puMFv72xqCYV2jdcSlXgtFvm";
	var SECRET_KEY = "v5XHtqKXEm0p6ehPZrXIXrftDvocyv1m";

	// 新建一个对象,建议只保存一个对象调用服务接口
	var client = new AipOcrClient(APP_ID, API_KEY, SECRET_KEY);
	var HttpClient = require("baidu-aip-sdk").HttpClient;
	  
	// 设置request库的一些参数,例如代理服务地址,超时时间等
	// request参数请参考 https://github.com/request/request#requestoptions-callback
	HttpClient.setRequestOptions({timeout: 5000});

	// 也可以设置拦截每次请求(设置拦截后,调用的setRequestOptions设置的参数将不生效),
	// 可以按需修改request参数(无论是否修改,必须返回函数调用参数)
	// request参数请参考 https://github.com/request/request#requestoptions-callback
	HttpClient.setRequestInterceptor(function(requestOptions) {
		// 查看参数
		console.log(requestOptions)
		// 修改参数
		requestOptions.timeout = 5000;
		// 返回参数
		return requestOptions;
	});

	 var fs = require('fs');
 
	var image = fs.readFileSync(Path).toString("base64");

	// 调用通用文字识别, 图片参数为本地图片	 
	//https://ai.baidu.com/docs#/OCR-Node-SDK/top
	//普通识别:generalBasic;高精度:accurateBasic ;位置:generalUrl;高精度位置:accurate ;二维码:qrcode
	client.qrcode(image).then(function(result) {		
		 
		 var error=result.error_code;
		 if(error=="undifined") 
			alert(JSON.stringify(result)); 
		 
		 // 打印识别数据
		  var num=result.codes_result_num;
		 for(var i=0;i<num;i++)
		 {
			 var name=result.codes_result[i].text;	

			cs.evalScript('addLayerText("'+name+'")');  
			//	写到桌面
			cs.evalScript('WriteData("'+name+'")');  
		 }
		 
	}).catch(function(err) {
		// 如果发生网络错误
		//alert(err,"err");
		alert("网络错误","err");
		//cs.evalScript('alert("'+err+'")');			
	});
	
		}catch(e){alert(e);}; 
}
 
 

 


 

 

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
 【为什么购买本课程?】1、学会Photoshop脚本,可以大幅提高您的工作效率、摆脱大量重复设计任务的束缚;2、扩展Photoshop的功能:天气预报、to-do设计任务管理、中文加拼音、图层文字中英互译、每日一句英语、OCR智能识别图片上的文字内容、 为上万影片批量生成九宫格预览图、为数百个视频自动添加内容不同的片头、自动获取图片的主题颜色、快速生成不限数量并且不重复的漂亮卡通头像、给Photoshop添加猜数字、贪吃蛇游戏等等;3、利用人工智能技术:在Photoshop中识别图片中指定颜色的物体、进行面部识别;4、掌握99%Photoshop设计师不曾接触的技能,打造自己的职场护城河!5、重要的是:只有我们这里提供系统、全面、易学的Photoshop脚本教程,只此一家,别无选择!  【Photoshop脚本是什么?】* Photoshop神秘和强大的一项秘技!* 它可以允许您以代码的方式来操作文档、美化图像、处理图层、控制通道、编辑选区、使用滤镜等等,就像在Photoshop界面上操作一样。* 与PhotoShop动作(Action)相比,PhotoShop脚本更强大、更智能、更富有逻辑判断功能。* PhotoShop脚本主要用于重复性的任务或用于制作非常复杂的特殊效果。 【学会Photoshop脚本,可以做什么?】* 一键给n个图片批量添加水印;* 一键将n个图片批量生成指定尺寸的缩略图;* 一键将PSD网页设计稿的各功能区域,批量输出为Web所用格式;* 一键生成iOS、Andriod应用和游戏必需的十几种尺寸的图标;* 一键将n个小图拼合为一张大图,并输出各小图在大图中的坐标信息;* 甚至开发一款运行在Photoshop上的趣味游戏!我们向您保证,学习PhotoShop脚本所花费的时间,可以在完成几项重复性的复杂任务时得到补偿。快来学习Photoshop脚本吧!  【课程的特点】1、创新的教学模式:手把手教您Photoshop自动化技术,一看就懂,一学就会;2、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;3、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;4、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;5、课程源码素材:购买课程之后,进入最后一章的最后一节的课件列表,下载课程源码素材。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值