Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Photoshop / InDesign CS5脚本:图像大小转换错误是否占用了太多内存?

Photoshop / InDesign CS5脚本:图像大小转换错误是否占用了太多内存?
EN

Stack Overflow用户
提问于 2012-07-13 13:30:46
回答 1查看 1.3K关注 0票数 1

我有一个脚本试图:

  • 扫描InDesign文档以获取所有图像
  • 通过BridgeTalk对象将所有图像发送到Photoshop
  • 将所有图像调整到600 to宽(从数学上保持高宽比)
  • 将所有图像从Photoshop导出到一个新文件夹

似乎我可能需要通过编程调整每个图像的DPI,因为Photoshop在调整图像大小之前就崩溃了。该错误表明临时内存被此脚本重载,我假设它与图像质量和/或大小有关。以下是错误消息:

发生了一般Photoshop错误。此功能在Photoshop的此版本中可能不可用。 第1行中的错误: 无法完成命令,因为刮擦磁盘已满。

以下是转换图像大小的相关代码:

代码语言:javascript
运行
AI代码解释
复制
function resaveInPS(imagePaths, imagesFolder)
{
    /*
     * NOTE:  no single-line comments are allowed in this function, because it is not read line-by-line by BridgeTalk, but as a single String;
     *        only multi-line comments will work, because they are terminated at each end
     */

    BridgeTalk.bringToFront("photoshop"); /* switch view from InDesign to Photoshop */

    app.displayDialogs = DialogModes.NO; /* Photoshop statement, prevents status alerts from interrupting */

    var imagePath = "";
    var fileName = "";
    var largerImage = "";

    for(var i = 0; i < imagePaths.length; i++)
    {
        imagePath = imagePaths[i].fullName;
        fileName = imagePaths[i].name;
        largerImage = fileName.substr(0, fileName.length - 4); /* getting rid of the file extension:  Photoshop will handle the file extension */

        var photoshopDoc = "";
        photoshopDoc = app.open(new File(imagePath) );

        var currentWidth = photoshopDoc.width; /* in inches */
        var currentHeight = photoshopDoc.height; /* in inches */

        currentWidth.convert("px"); /* now in pixels */
        currentHeight.convert("px"); /* now in pixels */

        var newWidth = 600; /* defining the desired exported image width here */
        var ratio = newWidth / currentWidth;
        var newHeight = ratio * currentHeight; /* maintaining aspect ratio of the resized image's height here */

        alert("The currentHeight is " + currentHeight + ".\n\nThe ratio is " + ratio + ".\n\nThe newHeight is " + newHeight + ".");

        photoshopDoc.resizeImage(newHeight, newWidth); /* (height, width) */
        photoshopDoc.resizeCanvas(newHeight, newWidth); /* (height, width) */

        var saveOptions = new TiffSaveOptions(); /* handling the file extension here */
        photoshopDoc.saveAs(new File(imagesFolder + "/" + largerImage), saveOptions); /* saving the new image in the folder here, with the file extension */
        photoshopDoc.close(SaveOptions.DONOTSAVECHANGES); /* close the Photoshop document without saving */
        app.purge(PurgeTarget.ALLCACHES); /* clears the clipboard, history, and undo cache in Photoshop; Note: does NOT delete the temporary files! */

    } /* end of for loop */

    app.displayDialogs = DialogModes.ALL; /* resume normal dialogs after saving the file and closing the document */
    app.purge(PurgeTarget.ALLCACHES); /* clears the clipboard, history and undo cache in Photoshop; Note:  does NOT delete the temporary files! */

} // end of function ResaveInPS

备注--我使用的app.purge(PurgeTarget.ALLCACHES)语句似乎没有多大效果,因为错误仍在发生.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 12:10:30

因此,我错误地假设类型强制将适用于单位值,但当然不会,因为“像素”不是默认的Javascript类型。

在不将new UnitValue应用于普通var ratio的情况下,比率被强制输入为Number(尽管currentWidth是用“象素”单元类型实例化)。此外,var newWidth仍是一种类似于普通Number的产品。

下面是修正后的代码,从var currentWidth行开始,以resizeCanvas结尾:

代码语言:javascript
运行
AI代码解释
复制
        var currentWidth = photoshopDoc.width; /* in inches */
        var currentHeight = photoshopDoc.height; /* in inches */

        currentWidth.convert("px"); /* now in pixels */
        currentHeight.convert("px"); /* now in pixels */


        var newWidth = new UnitValue(600, "px"); /* defining the desired exported image width here */
        var ratio = new UnitValue(newWidth / currentWidth, "px");
        var newHeight = new UnitValue(ratio * currentHeight, "px"); /* maintaining aspect ratio of the resized image's height here */

        /*alert("The currentHeight is " + currentHeight + ".\n\nThe ratio is " + ratio + ".\n\nThe newHeight is " + newHeight + ".");*/

        photoshopDoc.resizeImage(newWidth, newHeight); /* (width, height) */
        photoshopDoc.resizeCanvas(newWidth, newHeight); /* (width, height) */

此外,我还得到了参数的方法,更好的resizeImage和更好的resizeCanvas反向!这两种方法都是正确的顺序:(width, height)

-感谢马克为我指明了正确的方向。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11478651

复制
相关文章
强大的 Creative Suite 媒体管理器Adobe Bridge for Mac 11.1.0
免费下载: https://macnp.com/info/1416041930455168
Mac推荐
2021/10/18
1K0
强大的 Creative Suite 媒体管理器Adobe Bridge for Mac 11.1.0
Adobe Bridge CC 2020官方版Adobe BR下载附安装技巧
Adobe Bridge CC 2020官方版是一款由Adobe精心打造的全新型电脑文件管理工具,能够帮助用户轻松管理自己设计的项目内容,Adobe Bridge CC 2020软件功能全面,支持编辑管理图片、PDF文件等,帮助用户更好管理本地的文件。
木子学Lee
2023/03/08
8180
Adobe Bridge CC 2020官方版Adobe BR下载附安装技巧
Adobe Bridge软件怎么获取?Br安装教程(含全版本安装包)
BR是 Bridge 缩写,Adobe Bridge 是Adobe公司开发的一个组织工具程序,定义就是数字资产管理软件和照片管理工具。可以使用 Bridge创建管理使用Adobe所有软件创建任何格式的文件。以及查看有关从相机导入的数据,如照片按尺寸、相机型号、镜头类型、曝光时间等方面。
木子学Lee
2023/03/13
3.3K0
Adobe Bridge软件怎么获取?Br安装教程(含全版本安装包)
特别推荐:Web开发常用速查手册大全
CSS CSS3 Cheat Sheet ↓ CSS2 Visual Cheat Sheet ↓ CSS Cheat Sheet (V2) ↓ Css Property Index ↓ BluePrint CSS ↓ HTML HTML 5 Cheat Sheet ↓ HTML5 Canvas Cheat Sheet ↓ HTML5 Glossary ↓ HTML Character Entities Cheat Sheet ↓ Color Codes Matching
用户4962466
2019/10/15
1K0
BR2022下载安装包 br中文版一分钟安装教程各版本安装包-经验分享
BR是 Bridge 缩写,Adobe Bridge 是Adobe公司开发的一个组织工具程序,定义就是数字资产管理软件和照片管理工具。可以使用 Bridge创建管理使用Adobe所有软件创建任何格式的文件。以及查看有关从相机导入的数据,如照片按尺寸、相机型号、镜头类型、曝光时间等方面。
木子学Lee
2023/03/03
7900
BR2022下载安装包 br中文版一分钟安装教程各版本安装包-经验分享
【文末福利】什么是 Adobe Creative Cloud 创意应用软件?
谈到Adobe,在很多人的印象里Adobe一直是创意软件公司的代表,诸如图像处理软件Photoshop、视频剪辑处理软件Premiere、特效制作软件After Effects、音频处理软件Audition以及PDF等都出自Adobe之手。
IT胶囊
2023/02/22
1.2K0
【文末福利】什么是 Adobe Creative Cloud 创意应用软件?
Adobe国际认证|InDesign 中的 Adob​e Capture
原标题:Adobe国际认证|InDesign 中的 Adob​e Capture(来源:Adobe国际认证中文网站_Adobe认证专家)
IT胶囊
2022/01/18
8880
Adobe国际认证|InDesign 中的 Adob​e Capture
图片一键压缩,支持批量压缩
最近在写项目时用到了很多图片,由于考虑到图片过大会占用许多服务器资源所以就想到了去压缩图片,但是由于图片太多所以用photoshop操作也挺麻烦就找到了一个网站,如下
用户10106350
2022/10/28
1.2K0
Adobe有哪些软件?除了这些软件外,对于Adobe您还了解多少?
Adobe系统公司(英语:Adobe Systems Incorporated,发音:宽式IPA:/əˈdoʊbiː/,其官方大中华部门内也常以中文“奥多比”自称。),多年来Adobe通过不断创新,致力于通过数字体验改变世界。
IT胶囊
2023/02/15
8020
Adobe有哪些软件?除了这些软件外,对于Adobe您还了解多少?
编写 Shell脚本 ,监控内存是否溢出
threshold 变量用于设置内存使用的阈值,这里设置为90,表示当内存使用超过90%时触发警报。
一写代码就开心
2023/08/13
4120
PhotoShop脚本指南
Photoshop支持三种脚本语言:AppleScript,VBScript,JavaScript。其中AppleScript为苹果系统,VBScript为Windows操作系统,JavaScript兼容苹果和Windows操作系统。
牛老师讲GIS
2018/10/23
3.1K0
PhotoShop脚本指南
BR下载 :Adobe Bridge软件下载安装教程--BR卸载 :Adobe Bridge软件卸载教程
Adobe软件的安装和卸载,会在数据库中留下一些残留信息,那么怎样才能做到adobe bridge cs6彻底卸载呢?接下来小编为大伙讲述adobe bridge cs6彻底卸载方法,希望可以帮助到有
木子学Lee
2023/03/23
1.9K0
BR下载 :Adobe Bridge软件下载安装教程--BR卸载 :Adobe Bridge软件卸载教程
PhotoShop脚本入门实例
PhotoShop版本:Photoshop CC 2020 低版本可能会影响对象定义
怪兽
2022/10/04
1.1K0
PhotoShop脚本入门实例
「Adobe国际认证」Photoshop软件,关于绘图教程?
Adobe Photoshop 中的绘图包括创建矢量形状和路径。在 Photoshop 中,可以使用任何形状工具、钢笔工具或自由钢笔工具进行绘制。在选项栏中可以使用每个工具的选项。
IT胶囊
2021/06/23
1.5K0
禁用Compiz,太占内存
https://zh.wikipedia.org/wiki/Compiz ,简单理解是实现了Ubuntu的3D效果
随心助手
2019/10/15
3.6K0
用FreeSWITCH进行图像处理
是的,最流行也是最标准的图像处理工具当然是PhotoShop,PhotoShop如此流行,以至于它的缩写PS都成了图像处理的代名词。但是,PhotoShop唯一的缺点就是太贵,这些钱对于设计人员来说当然是值得花的,但对于广大程序员来说,它是个低频应用,可能一年中也用不了几次,就不合算。有时候实在需要,我也是使用GIMP凑合着用。GIMP是开源的,也能用,但说实话用起来确实不如PhotoShop顺手。
杜金房
2020/12/21
9160
用FreeSWITCH进行图像处理
Acrobat Pro DC 2021 for Mac(pdf编辑器)中文激活版
Adobe Acrobat Pro DC 2021是Adobe公司出品的⼀款⾮常好⽤且功能强⼤的PDF编辑和阅读软件。它将全球最佳的PDF解决⽅案提升到最新的⾼度,并配有直观触控式界⾯,通过开发强⼤的新功能,使⽤户能在任何地⽅完成⼯作。新⼯具中⼼可更简单迅速的访问最常使⽤的⼯具。Acrobat DC可利⽤Photoshop强⼤的图像编辑功能,将任何纸质⽂件转换为可编辑的电⼦⽂件,可⽤于传输、签字。
一小朵
2022/09/19
8920
Acrobat Pro DC 2021 for Mac(pdf编辑器)中文激活版
【MYSQL计算表记录占空间大小】
SELECT table_name, table_rows, data_length + index_length, CONCAT( ROUND( (data_length + index_length) / 1024 / 1024, 2 ), 'MB' ) DATA FROM information_schema.tables WHERE table_schema = 'test_schema' ORDER BY DATA DESC;
用户5640963
2019/07/25
1.5K0
点击加载更多

相似问题

InDesign CS5脚本:如何使用BridgeTalk从Photoshop中保存新图像?

23

InDesign CS5脚本: Oval 'transformReferencePoint‘

12

调整大小和裁剪图像(photoshop脚本)

22

InDesign CS5脚本:如何在导入CS5时忽略CS5脚本?

32

InDesign脚本,导入时调整图像大小

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档