'사진 매니아'로서(물론 저는 자격이 부족하다는 점을 인정합니다. 사진을 찍은 지 며칠밖에 되지 않았습니다 -_-!!) 항상 피할 수 없는 것이 하나 있는데, 바로 사진에 EXIF 매개변수가 있습니다. 내 블로그에 EXIF 정보를 표시할 수 있는 플러그인이 설치되어 있지만 플러그인이 아직 그다지 강력하지 않은 것 같습니다. 또한 몇 가지 포괄적인 작업을 고려해야 합니다. 일괄 크기 조정, 저작권 정보 추가 등
물론, 다행스럽게도 여전히 PS가 필요하고 PS 스크립트를 작성하여 우리 아이디어에 따라 특정 작업을 수행하도록 할 수도 있습니다. :) 안녕하세요, Wuji 포럼의 게시물에서 PS 스크립트를 찾아서 따라갔습니다. 나 자신 아이디어가 약간 수정되었으며(주로 시간, 렌즈 식별 및 초점 거리 식별) 렌더링이 제목 사진에 표시됩니다. 예를 들어 EXIF 테두리를 일괄적으로 추가하고 싶다면 액션을 기록한 후 일괄적으로 실행하면 됩니다.)
마지막으로 다음 스크립트를 첨부하세요.
displayDialogs = DialogModes.NO; var defaultRulerUnits = preferences.rulerUnits; preferences.rulerUnits = Units.PIXELS; //将一个长字串分解成单个字符串 function explodeArray(item) { var i=0; var Count=0; var tempString=new String(item); tempArray=new Array(1); do{ i=tempString.indexOf(":"); if(i>0) tempString=tempString.substr(i+1,tempString.length-i-1); i=tempString.indexOf(">"); if(i>0) { tempArray[Count]=tempString.substr(0,i); tempString=tempString.substr(i+1,tempString.length-i-1); Count ++; } i=tempString.indexOf("<"); if(i>0) { tempArray[Count]=tempString.substr(0,i); tempString=tempString.substr(i-1,tempString.length-i+1); Count ++; } }while (tempString.indexOf("</x:xmpmeta>")>0); tempArray[Count]=tempString; return tempArray; } var i=0; var j=0; var k=0; var pResulotion=72; var AD=""; var resRatio=""; var imageRatio=""; var dateArray1=""; var dateArray2=""; var monthsArray=""; var exposureProgramArray=""; var phoDate=""; var phoTime=""; var photoWidth=""; var photoHight=""; var exifData=""; var black=""; var white=""; var grey=""; var fWidth=""; var fHight=""; var tSize=""; var tLeft=""; var tHight=""; var infoLayer=""; var TI=""; nameLayer=""; var TN=""; var stringTemp=""; //临时字串 var make=""; //相机公司 var model=""; //相机型号 var camera=""; //相机 var lens=""; //镜头类型 var lensUsed=""; //使用的镜头 var focalLength=""; //焦距 var exposureTime=""; //快门 var fNumber=""; //光圈 var ISOSpeedRatings=""; //ISO设置 var dateTimeOriginal=""; //拍摄时间 var exposureBiasValue=""; //曝光补偿 var exposureProgram=""; //曝光程序模式 var fired=""; //闪光模式 //改成你自己想写的,比如版权所有和你自己的网名等 //如果为空,将采用相机设置的名字 var creator="Photo By Kaisir"; //拍摄者 AD = activeDocument; //Aglin 编制了自动改变图象大小为网上交流大小的代码, //稍加修改,如果宽窄任一边大于1000,就自动剪裁 //这里最长边为750,最短边为500 //请根据自己相机拍出来的图像比例设置长宽比 //如果不用可以去掉 //-------------------------------------------- var resizeMax=1024; var resizeMin=678; if(AD.width.value > 1500 || AD.height.value > 1500) { imageRatio = AD.width.value/AD.height.value; if(imageRatio>1) AD.resizeImage(resizeMax,resizeMin,pResulotion,ResampleMethod.BICUBICSHARPER); if(imageRatio==1) AD.resizeImage(resizeMax,resizeMax,pResulotion,ResampleMethod.BICUBICSHARPER); if(imageRatio<1) AD.resizeImage(resizeMin,resizeMax,pResulotion,ResampleMethod.BICUBICSHARPER); } //-------------------------------------------- resRatio = AD.resolution/pResulotion; if(resRatio!=1){ AD.resizeImage(AD.width.value,AD.height.value,pResulotion); } photoWidth = AD.width.value; photoHight = AD.height.value; //获取RAW保存的信息 exifData = AD.xmpMetadata.rawData.toString(); //将EXIF信息分成单个的相关信息 explodeArray(exifData); //Photoshop CS获取EXIF信息 //快门速度 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("ExposureTime")!=-1) { exposureTime = tempArray[n+1]; break; } } //光圈大小 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("FNumber")!=-1){ fNumber = tempArray[n+1]; break; } } //曝光程序模式 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("ExposureProgram")!=-1){ exposureProgram = tempArray[n+1]; break; } } //曝光补偿 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("ExposureBiasValue")!=-1){ exposureBiasValue = tempArray[n+1]; break; } } //闪光模式 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("Fired")!=-1){ fired = tempArray[n+1]; break; } } //拍摄日期、时间 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("DateTimeOriginal")!=-1){ dateTimeOriginal = tempArray[n+1]; break; } } //使用焦距 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(tempArray[n]=="FocalLength"){ focalLength = tempArray[n+1]; break; } } //ISO设置 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("ISOSpeedRatings")!=-1){ ISOSpeedRatings = ", ISO "+tempArray[n+5]; break; } } //使用镜头类型 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(tempArray[n]=="Lens"){ lens=tempArray[n+1]; break; } } //相机厂商 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("Make")!=-1){ make = tempArray[n+1]; break; } } //相机型号 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("Model")!=-1){ var model = tempArray[n+1]; break; } } //对于有的相机型号不包括制造商部分 //camera = make+model; //对于有的相机型号包括制造商部分 camera = model; //相机所有者 for(n = 0; n < tempArray.length; n ++) { stringTemp=tempArray[n]; if(stringTemp.indexOf("creator")!=-1 && creator==""){ creator = tempArray[n+5]; break; } } //检查快门速度 dateArray1 = exposureTime.split("/"); j = dateArray1[0]; i = dateArray1[1]; if(j/i>=1) exposureTime=parseInt(j/i)+"."+(j-parseInt(j/i)*i); else { i=parseInt(i/j); j=1; exposureTime=j+"/"+i; } //计算光圈大小 dateArray1 = fNumber.split("/"); i = dateArray1[0]; j = dateArray1[1]; if(j>1) fNumber=i/j; else fNumber=i; //曝光补偿换算成小数 dateArray1 = exposureBiasValue.split("/"); i = dateArray1[0]; j = dateArray1[1]; exposureBiasValue=i/j; //小数点后面保留2位,就*100/100,保留一位,就*10/10 //这里保留了2位,20D可以不要这两行 if(exposureBiasValue!=0) exposureBiasValue=parseInt(exposureBiasValue*100)/100; if (exposureBiasValue > 0) exposureBiasValue="+"+exposureBiasValue; //确定曝光程序模式 exposureProgramArray = ["未定义", "Manual", "Normal Program", "Aperture Priority", "Shutter Priority", "Creative Program", "Action Program", "Portrait Mode", "Landscape Mode"]; exposureProgram = exposureProgramArray[exposureProgram]; //检查闪光模式 dateArray1 = fired; if(dateArray1.indexOf("True")!=-1) fired="FlashOn"; else fired="FlashOff"; //检查焦距 dateArray1 = focalLength.split("/"); i = dateArray1[0]; j = dateArray1[1]; focalLength=parseInt(i/j); //改变日期格式 dateArray1 = dateTimeOriginal.split("T"); phoDate = dateArray1[0]; phoTime = dateArray1[1]; dateArray2 = phoDate.split("-"); monthsArray =["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; phoDate = dateArray2[0]+"-"+monthsArray[dateArray2[1]-1]+"-"+dateArray2[2]; dateArray2 = phoTime.split("+"); phoTime = dateArray2[0]; //你有什么镜头,就根据镜头和最大焦距改吧 if(lens != "") { if(lens.indexOf("17.0-40.0 mm")!=-1) lensUsed = "Canon 17-40mm F4L USM"; } //如果没有镜头信息,就使用原来的办法比较 else { var focLength=parseInt(focalLength); lensUsed="18-55mm 1:3.5-5.6G"; // if(focLength>=17 && focLength<=40) // lensUsed = "Nikon"; // if(focLength>=70 && focLength<=200) // lensUsed = "Nikon"; // if(focLength=="85") // lensUsed = "Nikon"; // if(focLength=="100") // lensUsed = "Nikon"; } //画线和框 //定义黑色,你也可以定义其他颜色哟 black = new SolidColor(); black.rgb.red = black.rgb.green = black.rgb.blue = 0; //定义白色,你也可以定义其他颜色哟 white = new SolidColor(); white.rgb.red = white.rgb.green = white.rgb.blue = 255; //定义灰色,你也可以定义其他颜色哟 grey = new SolidColor(); grey.rgb.red = grey.rgb.green = grey.rgb.blue = 50; //加入一条白线 backgroundColor = white; //如果改为黑线 //backgroundColor = black; //白线宽窄设为2或4,两边,实际宽度除以2 AD.resizeCanvas(AD.width.value+2,AD.height.value+2,AnchorPosition.MIDDLECENTER); //加入灰框 //backgroundColor = grey; //加入黑框 backgroundColor = black; //如果改为白框 //backgroundColor = white; //边框宽度和高度,这里将黑框宽窄设为图片宽度的1/40,两边,实际宽度再除以2 fWidth = parseInt(photoWidth/40); fHight = parseInt(photoWidth/40); //加框 AD.resizeCanvas(AD.width.value+fWidth,AD.height.value+fHight, AnchorPosition.MIDDLECENTER); //底部再加宽点,便于写字 AD.resizeCanvas(AD.width.value,AD.height.value+fHight+fHight+fHight,AnchorPosition.TOPCENTER); //标字和参数 nameLayer = AD.artLayers.add(); nameLayer.kind = LayerKind.TEXT; TN = nameLayer.textItem; TN.contents = creator; //版权字体、字号、颜色和加粗等 TN.font = "STXingkai"; //右对齐 TN.justification = Justification.RIGHT; //字号 tSize = parseInt((fWidth+10)/2); //字体左边距和下边距 tLeft = photoWidth; tHight = photoHight-fHight+tSize; //标字的位置 TN.position = [tLeft,tHight]; TN.size = tSize+4; TN.color = white; //如果为白框,字体为黑色 //TN.color = black; TN.fauxBold = true; infoLayer = AD.artLayers.add(); infoLayer.kind = LayerKind.TEXT; TI = infoLayer.textItem; //右对齐,如果左对齐可以省略下面这行 TI.justification = Justification.RIGHT; tHight = photoHight+fHight+tSize; //标字的位置 TI.position = [tLeft,tHight]; //显示:相机型号,镜头,焦距,曝光时间,光圈,ISO设置,拍摄日期等 TI.contents = camera+", "+lensUsed+" @"+focalLength+"mm,"+exposureTime+"Sec,F/"; TI.contents = TI.contents+fNumber+", EV "+exposureBiasValue+ISOSpeedRatings; //如果对曝光程式不感兴趣,请去掉下面行 TI.contents = TI.contents+", "+exposureProgram+", "+fired; TI.contents = TI.contents+"\u000D"+phoDate+" "+phoTime; //字体、字号、颜色等 TI.font = "黑体"; //TI.font = "Arial"; TI.size = tSize; TI.color = white; //如果为白框,字体为黑色 //TI.color = black; TI.fauxBold = true; AD.flatten(); //-------------

photoshopcs5序列号永久免费的有:1、1330-1440-1602-3671-9749-7897;2、1330-1191-2998-6712-2520-5424;3、1330-1367-4285-4928-0630-3107;4、1330-1570-9599-9499-8092-8237;5、1330-1028-1662-3206-1688-5114等。

AdobePhotoshop是数字设计的行业标准,每天都受到在线社区的喜爱和使用。但是,当键盘快捷键卡顿或完全失败时,它会显着降低任何项目或您在Windows11上的整体生产力。无论您是经验丰富的设计师还是只是涉足照片编辑,这些故障都不仅仅是Photoshop和PhotoshopCC中的小麻烦。首先,让我们看看自定义快捷方式或默认快捷方式停止工作的常见原因。为什么我的快捷方式在Photoshop中不起作用?自定义工作区设置:有时,在工作区设置之间调整或切换可能会重置键盘快捷键。粘滞键:此辅助功能

网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的,今天我们就来用Python解决这个问题。安装模块PIL:Python Imaging Library 是 python 上非常强大的图像处理标准库,但是只能支持 python 2.7,于是就有志愿者在 PIL 的基础上创建了支持 python 3的 pillow,并加入了一些新的特性。pip install pillow pymupdf 可以用 python 访问扩展名为*.pdf、

在网页开发中,图片预载是一种常见的技术,可以提升用户的体验感。当用户浏览网页时,图片可以提前下载并加载,减少图片加载时的等待时间。在Vue框架中,我们可以通过一些简单的方法来实现图片预载。本文将介绍Vue中的图片预载技术,包括预载的原理、实现的方法和使用注意事项。一、预载的原理首先,我们来了解一下图片预载的原理。传统的图片加载方式是等到图片全部下载完成才显示

PHP和GD库实现图片裁剪的方法概述:图片裁剪是网页开发中常见的需求之一,它可以用于调整图片的尺寸,剪裁不需要的部分,以适应不同的页面布局和展示需求。在PHP开发中,我们可以借助GD库来实现图片裁剪的功能。GD库是一个强大的图形库,可提供一系列函数来处理和操控图像。代码示例:下面我们将详细介绍如何使用PHP和GD库来实现图片裁剪。首先,确保你的PHP环境已经

如何在uniapp中实现图片滤镜效果在移动应用开发中,图片滤镜效果是一种常见且受用户喜爱的功能之一。而在uniapp中,实现图片滤镜效果也并不复杂。本文将为大家介绍如何通过uniapp实现图片滤镜效果,并附上相关代码示例。导入图片首先,我们需要在uniapp项目中导入一张图片,以供后续滤镜效果的处理。可以在项目的资源文件夹中放置一张命名为“filter.jp

vue报错找不到图片的解决办法:1、修改配置文件,将绝对路径改为相对路径;2、将图片作为模块加载进去,并将图片放到static目录下;3、将imageUrls引入响应的vue文件中,解析引用即可。

此前,PS的重建图像功能就让人无比振奋,让无数人惊呼今天,StabilityAI又放大招了。它联合Clipdrop推出了UncropClipdrop——一个终极图像比例编辑器。从Uncrop这个名字上,我们就能看出它的用途。它是一个AI生成的「外画」工具,通过创建扩展背景,这个工具可以补充任何现有照片或图像,来更改任何图像的比例。敲黑板:通过Clipdrop网站,就可以免费试用这个工具了,无需登录!比例任意调,满意为止Uncrop基于StabilityAI的文本到图像模型StableDiffus


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Dreamweaver Mac版
시각적 웹 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
