使用 Extendscript 编写二进制文件。文件大小不正确

2024-03-23

进一步我的问题here https://stackoverflow.com/questions/63022178/read-binary-file-with-extendscript我正在使用 Extendscript 将十六进制颜色列表从 Photoshop 中写入二进制文件。到目前为止,一切都很好。

仅用下面的代码编写的二进制文件就有119字节。当使用 Sublime Text 3 剪切、粘贴和保存时,它只有 48 个字节,这会导致稍后的复杂化。

这是我第一次进入二元世界,所以我可能有点失落。我怀疑这要么是一个编码问题(这可以解释 2.5 文件大小),要么是尝试以字面意义、字符对字符的方式重新创建文件时做了一些非常错误的事情。 *

// Initially, my data is a an array of strings
var myArray = [
"1a2b3c",
"4d5e6f",
"a10000",
"700000",
"d10101",
"dc0202",
"c30202",
"de0b0b",
"d91515",
"f06060",
"fbbaba",
"ffeeee",
"303030",
"000000",
"000000",
"000000"
]

// I then separate them to four character chunks
// in groups of 8
var data = "1a2b 3c4d 5e6f a100 0070 0000 d101 01dc\n" + 
"0202 c302 02de 0b0b d915 15f0 6060 fbba\n" +
"baff eeee 3030 3000 0000 0000 0000 0000";

var afile = "D:\\temp\\bin.act"

var f = new File(afile);
f.encoding = "BINARY";
f.open ("w");
// f.write(data);

// amended code
for (var i = 0; i < data.length; i++)
{
   var bytes = String.fromCharCode(data.charCodeAt(i));
   f.write(bytes);   
}

f.close();
alert("Written " + afile);

* ...或者是我的 VHS 上的跟踪。


我对 JavaScript 很烂,但我已经编写了一些东西,可以向您展示如何将 3 个字节的十六进制写入二进制文件。我希望这足以让您弄清楚如何完成剩下的事情!

我将此文件另存为/Users/mark/StackOverflow/AdobeJavascript.jsx

alert("Starting");

// Open binary file
var afile = "/Users/mark/StackOverflow/data.bin"
var f = new File(afile);
f.encoding = "BINARY";
f.open ("w");

// Define hex string
str = "1a2b3c"
for(offset=0;offset<str.length;offset+=2) {
   i = parseInt(str.substring(offset, offset+2), 16)
   f.write(String.fromCharCode(i));
}

f.close();
alert("Done");

如果你倾倒data.bin你会看到 3 个字节:

xxd data.bin
00000000: 1a2b 3c

您只需将字符串更改为即可写入更多值:

str = "1a2b3c"+ "4d5e6f"+ "a10000";

我还发现了如何从我的终端中的 shell 脚本运行 ExtendScript「快乐的地方」所以我会在这里添加它以供我自己参考:

#!/bin/bash

osascript << EOF
tell application "Adobe Photoshop CC 2019"
    do javascript "#include /Users/mark/StackOverflow/AdobeJavascript.jsx"
end tell
EOF

这个答案对应的阅读部分是here https://stackoverflow.com/a/63257011/2836621.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Extendscript 编写二进制文件。文件大小不正确 的相关文章

  • 用于创建和应用图层蒙版的 Photoshop JS 脚本

    我用 JS 编写了一个 Photoshop 脚本 它采用每个图层文件夹并将其像精灵表一样分隔开 我已经弄清楚了这一部分 但我正在尝试在运行脚本时消除任何形式的人为错误 现在 您需要使用每个图层文件夹的正确命名来准备文件 并且还必须对选区应用
  • 从二进制文件存储/加载 numpy 数组

    我想从二进制文件存储和加载 numpy 数组 为此 我创建了两个小函数 每个二进制文件应包含给定矩阵的维数 def saveArrayToFile data fileName with open fileName w as file a a
  • VBA通过POST方法将二进制代码文件发送到API

    我的代码有最后一个问题 通过 POST 变量将代码从 Outlook 发送到 API 我的最后一个问题是如何在一个 POST 请求中向 API 发送变量和邮件附件 邮件附件的第一个 7zip 压缩 strSource cstrFileAtt
  • 从 F# 中特定位置的二进制文件读取整数的性能问题

    今天早上我问here https stackoverflow com questions 24381090 performance issue with reading integers from a binary file at spec
  • 在 ExtendScript for Illustrator 中执行外部脚本

    Summary 有没有办法使用execute 函数将参数传递给Python脚本 并让Python脚本在执行时使用该参数 然后将结果返回给ExtendScript 语境 我正在为 Illustrator 构建一个脚本 该脚本必须查询 Web
  • 使用 Git 管理大型二进制文件

    我正在寻找有关如何处理我的源代码 Web 应用程序 所依赖的大型二进制文件的意见 我们目前正在讨论几种替代方案 Copy the binary files by hand 专业人士 不确定 反对 我强烈反对这一点 因为它增加了设置新站点 迁
  • 如何实现基于 Cocoa 的 Adob​​e Photoshop 插件

    Cocoa 曾经在 CS3 上工作过将 Cocoa 包放入主 Carbon 插件包中的技巧 http furbo org 2008 07 08 plug ins the cocoa way 从 Carbon 加载它并发出 NSApplica
  • Django 1.7:提供 pdf 文件(UnicodeDecodeError)

    我正在尝试使用 django 1 7 提供 PDF 文件 这基本上是 应该 工作的代码 如果我将 content type 更改为 文本 并用它下载 tex 文件 它当然可以工作 但是当我用二进制文件尝试 得到 UnicodeDecodeE
  • 什么是高通和低通滤波器?

    图形和音频编辑处理软件通常包含称为 高通滤波器 和 低通滤波器 的功能 它们到底有什么作用 以及实现它们的算法是什么 以下是使用卷积实现低通滤波器的方法 double signal some 1d signal double filter
  • SEGMENT_START("text-segment", 0x400000) 代表什么?

    我正在学习可执行二进制文件的布局 我的最终目标是分析特定可执行文件中可以重构 在其源代码中 以减少编译输出大小的内容 我一直在使用https www embeddedlated com showarticle 900 php https w
  • 了解 Objdump 中反汇编的二进制文件 - 输出中的字段是什么

    当我使用命令 arm linux gnueabihf objdump d a out 反汇编一个简单的 ARM 二进制文件时 得到以下输出 00008480 lt start gt 8480 f04f 0b00 mov w fp 0 848
  • 将 PSD 格式转换为 Gimp 可以读取的格式的方法

    我有一堆 PSD 文件 还有更多 我想将它们转换成我可以使用的格式 我之前曾 一些 成功地使用 Gimp 读取 PSD 但这些文件无法正确读取 有没有办法将 PSD 转换为 XCF 我尝试过 IrfanView 它可以正常显示 PSD 但无
  • 判断两个字符串或二进制文件是否不同的最快方法是什么?

    我正在编写一个单元测试 需要将结果文件与黄金文件进行比较 最简单的方法是什么 到目前为止我已经 对于Linux环境 int result system diff file1 file2 它们是不同的 如果result 0 如果你想要一个纯
  • 告诉 git 不要合并二进制文件而是选择

    当二进制文件 swf jar 和 flv 在本地更改时 我尝试引入更改 git 会尝试合并它们并报告冲突 然后 我分支到一个临时分支 并提交本地更改的二进制文件 并在拉取后使用递归策略将它们合并回来 太多工作 有没有办法告诉 git 不要尝
  • 复制 Photoshop sRGB 到 LAB 转换

    我想要实现的任务是复制 Photoshop RGB 到 LAB 的转换 为简单起见 我将描述我如何仅提取 L 通道 提取 Photoshop 的 L 通道 这是 RGB 图像 其中包括所有 RGB 颜色 请点击下载 为了提取 Photosh
  • 对于二进制文件,我应该使用 bfiles 还是 bigfiles?

    有一些善变的扩展可用于处理大型二进制文件 Bfiles http mercurial selenic com wiki BfilesExtension BigFiles http mercurial selenic com wiki Big
  • 是否可以为 VS Code 编写二进制文件导入扩展?

    我想在 vs code 中显示二进制文件的一些信息 是否可以为 VS Code 编写一个扩展名 以便在资源管理器中选择该文件 或直接打开它 时 您会看到该扩展名从二进制文件中提取的一些文本 因此 该扩展的核心功能将是 简化的 二进制到文本转
  • PHP include():文件大小和性能

    一个没有经验的PHP问题 我有一个 PHP 脚本文件 我需要在不同页面的很多地方多次包含该文件 我可以选择将包含的文件分解为几个较小的文件 并根据需要包含这些文件 或者 我可以将它们全部保存在一个 PHP 文件中 我想知道在这种情况下使用较
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f

随机推荐