Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >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

复制
相关文章
[Cocos Creator] 围绕物体旋转
在游戏开发过程中,可能会有让一个物体围绕另一个物体旋转的需求,就比如月球围绕着地球旋转,同时地球也在围绕着太阳旋转。
陈皮皮
2020/07/10
3.8K0
[Cocos Creator] 围绕物体旋转
HTML元素
注意:一些 HTML 元素没有内容(如 <br> 元素)。这些元素称为空元素。空元素没有结束标签!
玖柒的小窝
2021/09/24
1.4K0
HTML 元素
注释: 您将在本教程的下一章中学习更多有关属性的内容。 嵌套的 HTML 元素 大多数 HTML 元素可以嵌套(HTML 元素可以包含其他 HTML 元素)。 HTML 文档由相互嵌套的 HTML 元素构成。 HTML 文档实例
用户6884826
2021/07/07
1.3K0
HTML 元素
HTML 元素 开始标签 * 元素内容 结束标签 * <p> 这是一个段落 </p> <a href="default.htm"> 这是一个链接 </a> <br> 换行 HTML 元素语法 HTML 元素以开始标签起始 HTML 元素以结束标签终止 元素的内容是开始标签与结束标签之间的内容 某些 HTML 元素具有空内容(empty content) 空元素在开始标签中进行关闭(以开始标签的结束而结束) 大多数 HTML 元素可拥有属性
用户8442333
2021/08/21
1.5K0
HTML 元素
Web浏览器(如谷歌浏览器,Internet Explorer,Firefox,Safari)是用于读取HTML文件,并将其作为网页显示。
用户8442333
2021/08/21
1.3K0
Flash:DisplayObject的矩阵旋转(移动/修改注册点,修改旋转点)
简单来说,原理就是利用matrix运算,先把旋转点移到原点位置,旋转变换后再恢复到原来的位置 var a:Sprite = new Sprite(); a.graphics.beginFill(0); a.graphics.drawRect(0,0,100,100); a.graphics.drawCircle(0,0,6); a.graphics.endFill(); addChild(a); a.x = a.y = 100; trace (a.transform.matrix); var m:Matr
用户1258909
2018/07/04
9500
多个扇形元素绕圆旋转
这种效果有很多方案,最后选择了一个比较简单的方案,就是一个position: relative;的 div 。包裹5个position: absolute;的div。 通过旋转,调整5个div的 top 与 left,而产生弧度,并使中心点都指向圆心。 黄色扇形与文字 都是在5个div内部。
拿我格子衫来
2023/10/19
3060
多个扇形元素绕圆旋转
html元素(标签)
html元素(标签) <!DOCTYPE html> <html> <head> <!-- 头标签用于存放<meta><title>等标签 --> <meta charset="utf-8"> <!-- 设置编码 --> <title>html5</title> <!-- 设置标题 --> <link rel="stylesheet" type="text/css" href="mystyle.css"><!-- 定义了外部文件 --> <style type="t
IT架构圈
2018/05/31
2K0
认识html元素
前端现在越来越火,可以用去年热门的词语来形容——“风口上的猪”。希望这个系列的文集能够给“毫无任何基础,但是想转到前端的人”一点帮助。 认识一个html文档的基本结构: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Here is title</title></head><body> Here is content.</body></html> HTML 文档是由 HTML 元素 定义的,而HT
用户1667431
2018/04/18
2.3K0
认识html元素
认识html元素
前端现在越来越火,可以用去年热门的词语来形容——“风口上的猪”。希望这个系列的文集能够给“毫无任何基础,但是想转到前端的人”一点帮助。 认识一个html文档的基本结构: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Here is title</title></head><body> Here is content.</body></html> HTML 文档是由 HTML 元素 定义的,而HT
用户1667431
2018/04/18
2.4K0
认识html元素
HTML DOM - 元素
如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上。
陈不成i
2021/07/21
2.3K0
HTML的行元素和块元素
本博客所有文章如无特别注明均为原创。作者:十月梦想 ,复制或转载请以超链接形式注明转自 十月梦想博客 。 原文地址《HTML的行元素和块元素》
十月梦想
2018/08/29
3.4K0
HTML块级元素和行内元素
块级元素(block-level) 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。 常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等, 其中<div>标签是最典型的块元素。 块级元素的特点: (1)总是从新行开始 (2)高度,行高、外边距以及内边距都可以控制。 (3)宽度默认是容器的100% (4)可以容纳内联元素和其他块元素。 行内元素(inline-level) 行内元素(内联元素)不占有独立的区域,仅
秋白
2018/05/24
3.5K0
嵌套的 HTML 元素
<!DOCTYPE html> <html> <body> <p>这是第一个段落。</p> </body> </html>
用户8442333
2021/08/21
2.1K0
html 元素左移右移
Title div{ width: 200px; float: left; text-align: center; } select{ width: 100px; height: 140px; } $(function (){ $("#left button:eq(0)").click(function (){ // alert($
await
2021/09/23
3K0
html 元素左移右移
Title div{ width: 200px; float: left; text-align: center; } select{ width: 100px; height: 140px; } $(function (){ $("#left button:eq(0)").click(function (){ // alert($
await
2021/09/23
2.6K0
cefsharp修改html元素,CefSharp网页元素点击
代码完美地点击了开发人员控制台上的确切按钮,但没有点击CEF。只是出于某种原因忽略了它。。。
全栈程序员站长
2022/10/05
4.3K0
cefsharp修改html元素,CefSharp网页元素点击
HTML锚点
        以前只是知道有锚点这么个东西,一直没有用到,昨天做毕设用到了锚点,现在总结一下控制锚点的几种情况:         1. 在同一页面中 <a name="add"></a><!-- 定
高爽
2017/12/28
3.8K0
【HTML】HTML5 <div>元素布局的使用
标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。
梦溪
2021/08/09
4.2K0
JavaScript HTML DOM 元素 (节点)
要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。
陈不成i
2021/07/20
2.3K0

相似问题

旋转点围绕枢轴点?

12

围绕原点旋转点

20

方法围绕一个点旋转,html画布

10

围绕任意点旋转SKShapeNode

11

围绕轴心点旋转图像

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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