gpt4 book ai didi

matrix - APL编程-如何将简单的矩阵转换为图片?

转载 作者:行者123 更新时间:2023-12-03 08:55:15 25 4
gpt4 key购买 nike

我对 APL 相当陌生,我想将 4x4 二进制矩阵转换为由黑白方 block 组成的图像 - 类似的事情 found here 。文档说可以使用 ⎕WC 创建 GUI 对象,然后说明所需的位?我找不到任何示例,尽管有一些用于打开图片文件的示例。

请问有人可以提供一个使用此 APL 表达式返回的矩阵的示例吗?

4 4 ⍴ 1 0 1 0

谢谢!

最佳答案

给定你的矩阵,矩阵←4 4 ⍴ 1 0 1 0

每个 RGB 像素都以 256 为基数编码为单个整数:cb ← 矩阵 × 256 ⊥ 255 255 255

现在我们创建位图:'bm' ⎕WC 'Bitmap' ('CBits' cb)

并创建对应PNG的内容:png ← bm.MakePNG

让我们创建一个 native (即非 APL)容器文件并捕获其绑定(bind)编号:tn ← '\tmp\pic.png' ⎕NCREATE ¯1

附加数据:png ⎕NAPPEND tn

解开文件:⎕NUNTIE tn

以下是将文件名作为左参数、掩码作为右参数的程序的所有代码:

∇ filename PNG matrix ; cb ; bm ; png ; tn
cb ← matrix × 256 ⊥ 255 255 255
'bm' ⎕WC 'Bitmap' ('CBits'cb)
png ← bm.MakePNG
tn ← filename ⎕NCREATE ¯1
png ⎕NAPPEND tn
⎕NUNTIE tn

但是,您可能需要稍微缩放图像才能真正看到它,所以让我们定义一个执行缩放的辅助函数:

Scale ← { ⍺ / ⍺ ⌿ ⍵ }

现在让我们尝试一下:

'\tmp\bigpic.png' PNG 100 Scale 3 3 ⍴ 1 0 1 1 1 0 0 0 0
]Open \tmp\bigpic.png

Windows Photos Screenshot

这是一个在单独的窗口中显示图片的程序:

∇ Show matrix ; cb ; bm
cb ← matrix × 256 ⊥ 255 255 255
'bm' ⎕WC 'Bitmap' ('CBits'cb)
'f' ⎕WC 'Form' ('Coord' 'ScaledPixel') ('Size' (⍴ matrix))
'f.img' ⎕WC 'Image' ('Points' 0 0) ('Picture' bm)

所以我们可以这样做:

  Show 100 Scale 3 3 ⍴ 1 0 1 1 1 0 0 0 0

Dyalog APL GUI Form Screenshot

The full documentation可以通过输入 ]Help Bitmap 在线获取位图对象,也可以通过输入 Bitmap 并按 F1 键离线获取。

关于matrix - APL编程-如何将简单的矩阵转换为图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55983549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com