JPEG LosslessDecoderJS 化学化学反应
一个常见的DICOM压缩格式是JPEG Lossless. 标准JPEG解码器库中一般不支持这种格式.
此解码器可以从以下 DICOM 传输语法读取数据 :
- 1.2.840.1008.1.2.4.4.57 JPEG 无损失,无等级(流程14)
- 1.2.840.10008.1.2.4.4.70 JPEG 无损失,无等级(程序14[选 1])
使用量
var decoder = new jpeg.lossless.Decoder();
var output = decoder.decompress(buffer [, offset [, length]]);
// Parameters
// {ArrayBuffer} buffer
// {Number} offset offset into buffer (default = 0)
// {Number} length length of buffer (default = end of JPEG block)
// Returns
// {ArrayBuffer} output (size = cols * rows * bytesPerComponent * numComponents)
安装
通过此分叉安装 国家预防机制数字 :
npm install @cornerstonejs/jpeg-lossless-decoder-js
这个叉子增加了字节相通的末端扫描固定. 没有瞄准镜
[email protected] npm 上丢弃任意框架的最后样本
最后的Huffman代码完全结束在一个字节边界上,所以真实的 CT 图像
以错误的上一个像素解码.
测试
npm test
大楼
npm run build
这个写着 lossless.js 财务报告和审定财务报表 lossless-min.js,连同宣言
文件与源地图, 到 /release。 。 。 .
release/ 正在构建输出并忽略它。 别犯法 承诺
release/ 永远无法完整 因为同样 .gitignore 也排除
源地图和创建源代码的申报文件。 提交
03bb80c0 显示成本:承诺 release/cjs/lossless.cjs 还在
2.1.2建筑,它没有固定同一承诺增加的
src/。 。 。 .
两个版本 package.json 被故意持有, 每个人保留
建立稳定:
-
overrides.esbuild坚持建设0.19.7把它盖起来,然后 用于同一来源的不同编译 JavaScript 。 针 让我们npm audit fix更新测试工具而不修改已公布的工具 艺术品.cornerstonejs/codecs针起起同样的原因.指针故意地覆盖了整棵树. 一针
tsup一个人,因为overrides.tsup.esbuild,使npm 10和npm 11建立不同的树—— npm 11会把树倒到0.19.7,npm 10会保持vite的筑起 0.28.2 旁边——然后一个锁文件不能为两者服务. 有了这个公寓 pin,npm 10.8,npm 10.9和npm 11.19都安装了同一种锁文件. -
typescript用途~5.4.3没有^5.4.3。类型脚本 5.7 制作ArrayBufferLike停止满足ArrayBuffer,以及src/decoder.ts第93行 然后无法编译, 无法建立声明 。 抬起胸针 和类型说明一起使用src/。 。 。 .
出版
牵引请求标题决定释放. 这个仓库壁球合并,
所以合并会写一个承诺 main 而拉动请求的标题是
承诺的主体. .github/workflows/release.yml 阅读主题和
选取版本. 您不手工编辑版本 .
| 标题 | 凸起 |
|---|---|
feat!: …,或一个 BREAKING CHANGE: 页脚 | 主要 |
feat: … | 小声 |
fix: …, (中文(简体) ), perf: … | 补丁 |
build:, (中文(简体) ), chore:, (中文(简体) ), ci:, (中文(简体) ), docs:, (中文(简体) ), refactor:, (中文(简体) ), revert:, (中文(简体) ), style:, (中文(简体) ), test: | 无释放 |
| 无常规前缀 | 合并前被拒绝 |
第四行中带有类型的标题是有效的,不发表任何内容,即 右键用于未到达软件包的更改.
.github/workflows/pr-title.yml 检查每个拉请求的标题,然后它
编辑后重新检查。 它没有一个非常规的标题,它
声明释放的有效标题将产生,因此结果在
合并。 检查本地标题 :
node tools/check-pr-title.mjs "fix: decode the last sample of a scan"
Pull request # 1 是检查存在的原因 。 7个,4个 fix:, (中文(简体) ),
在标题下合并 chore: publish as @cornerstonejs/jpeg-lossless-decoder-js。 。 。 . chore 释放什么,所以
发布工作流程没有发表任何内容——运行仍然报告成功,
因为"没什么可以释放的"是一个合法的绿色结果. 只有登记处
显示错误.
tools/conventional.mjs 遵守检查和释放的规则
读取,所以两者不能分开.
当发布到期时,工作流程将新版本写到 package.json, (中文(简体) ),
预留一个区域到 CHANGELOG.md,承诺为
chore(release): publish标记 v<version>并创建
GitHub发布. 构建任务跳过释放承诺,所以释放不会
开始另一个释放.
tools/version.mjs 决定版本, 它只写文件 。 问甚么
在任何时间,释放都会对一棵肮脏的树:
node tools/version.mjs --dry-run
每个git写作都留在工作流程中,因此脚本可以安全地在当地运行.
cornerstonejs/codecs 分隔 tools/release/version.mjs 及其释放
工作流程也一样.
工作流程通过 OIDC 信任的出版以 npm 认证 。 它使用一个
短命的符號: npm 薄荷,用于每个运行和此工作流程文件的范围,
因此此寄存器没有 NPM_TOKEN。工作流程文件的名称是部分
配置: 重命名文件, npm 拒绝交换 .
这个包裹是如何被拖走的
以下步骤已经完成。 它们被录制是因为 npm 无法创建软件包 通过信任的出版来命名, 所以首次发布任何新软件包名称 必须是手工的, 下一个从这里开始.
2.2.0 手工出版:
npm login # a web login session, not an access token
npm ci
npm run lint && npm test
npm publish # prepublishOnly runs the build first
这个工作流程后来被注册为软件包所信任的出版商,因此 以后的发行不需要符号 :
npm trust github @cornerstonejs/jpeg-lossless-decoder-js \
--repo cornerstonejs/JPEGLosslessDecoderJS \
--file release.yml \
--allow-publish --yes
npm trust list @cornerstonejs/jpeg-lossless-decoder-js # confirm it
npm trust 需要npm 11.1.5.0 或稍后,它只接受一个网页登录会话
- 颗粒状或经典访问符 ~/.npmrc 401失败,甚至
虽然同一种出版物没有问题.
npm trust github ADDS 一个授权的发布路径,它不撤销任何内容.
在发布此软件包之前, 每一个访问符都可以发布
后来 要关闭此路径, 请设定软件包的出版访问权限
npmjs.com 改为"需要双要素认证和不允许令牌".
最后一个, v2.2.0 被标记在 main,因为手动发布不会创建标签和
tools/version.mjs 阅读自上次以来的承诺 v* 标签。 每个后来的标签
来自工作流程.
2.2.0 无出处证明: npm 只为信任者生成一个
发表于CI. 工作流程出版的每个版本都有一个.
承认
这个解码器最初由Helmut Dersch为Java所写. 我加入了对选择值 2 到 7 的支持, 贡献了错误修正并移植到 JavaScript .
还感谢 @jens-ox (英语) 用于更新此软件包到 TypeScript .