Answers:
convert -size 448x448 xc:none a.png
可以吗?
\windows\system32
)。
convert
工具一起提供,因为名称与系统实用程序冲突。您magick convert ...
改为跑步。
convert
是ImageMagick的一部分,因此将其称为自己的语言将不起作用。
ImageMagick Convert
。也许值得对此进行一些介绍
f=
(_=document.createElement`canvas`)=>_.toDataURL(_.height=_.width=448)
;document.write(f());
返回编码为一个数据PNG图像:URL适用于例如设置为src
的HTMLImageElement
。编辑:感谢@Shaggy节省了3个字节,感谢@Arnauld节省了2个字节。
document.createElement`canvas`
应该工作,再节省2个字节。
d=document
在顶部添加类似内容并替换document
为d
吗?应保存〜5个字符。
document.write
只是堆栈代码段的一部分,而不是函数的一部分,因此无论如何都不会计数。
v->new int[448][448][4]
返回448x448x4 0s的3D数组。
说明:
v-> // Method with empty unused parameter and 3D integer-array as return-type
new int[448][448][4]
// Create a 3D array of dimensions 448 by 448 by 4 (filled with 0s by default)
v->new int[448][448]
返回0x的448x448矩阵。
在Java中,RGBA值可以由integer表示。十六进制分别0x00000000
代表00
红色,绿色,蓝色和alpha。并且0x00000000
等于整数0
。
v->new int[448][448]
吗?因为在Java中颜色可以用整数(RGBA)表示。
0-255
一个有效的RBGA值的整数吗?我知道这是有效的RGB值,但也可以是RGBA?我几乎从不使用Java中的图像,因此对它们不太熟悉。我只是将我的4个内部0基于其他答案。
0x00000000
一个int可以容纳四个0(十六进制)。前2个十六进制数字是Alpha,后2个是红色,后2个是绿色,后2个是蓝色,因此您只需要一个整数。请参阅BufferedImage.TYPE_INT_ARGB。您有4个值,汇总为一个整数。和0x00000000
等于0
。
将图像保存到路径为s
101字节的文件中
s->javax.imageio.ImageIO.write(new java.awt.image.BufferedImage(448,448,2),"png",new java.io.File(s))
在线尝试...以某种方式
返回BufferedImage,46个字节
v->new java.awt.image.BufferedImage(448,448,2)
将图像保存到文件f
,83个字节
f->javax.imageio.ImageIO.write(new java.awt.image.BufferedImage(448,448,2),"png",f)
将PNG转储到STDOUT中,为92个字节(感谢仅ASCII!)
v->javax.imageio.ImageIO.write(new java.awt.image.BufferedImage(448,448,2),"png",System.out)
在线尝试!
感谢Kevin为第二和第四解决方案节省了一个字节!
448LDδ4Å0
或者:
¾4Ž1ÂDиии
-2个字节,感谢@Emigna。
-1个字节感谢@Adnan。
输出0的448x448x4 3D列表。
说明:
448LD # Push a list in the range [1,448], and duplicate it
δ # Outer product; apply the following double-vectorized:
4Å0 # Push a list of 4 0s: [0,0,0,0]
# (and output the result implicitly)
Ž1ÂD # Push compressed integer 448, and duplicate it
и # Create a list of 448 times 448
4 и # Transform it into a list of 448 times 448 times 4
¾ и # Transform it into a list of 448 times 448 times 4 times 0
# (and output the result implicitly)
请参阅我的05AB1E答案(如何压缩大整数?部分)以了解原因Ž1Â
是448
。
[[[0]*4]*488]*488
带打印:
print[[[0]*4]*488]*488
作为变量:
x=[[[0]*4]*488]*488
由于允许使用RGBA数组,这就是我在上面创建的,默认为全0,表示黑色,但完全透明。
[0]*802816
应该也可以使用。
<svg height=448 width=448
将其写入html文件并将其打开会产生一个empty <body>
。但是,如果写入1个字节,则将<svg height=448 width=448>
产生一个<body>
带有空SVG图像的。
>
,这意味着就标记而言,这确实是有效的。
<!DOCTYPE html>
,<html>
,<head>
,<style>
,<script>
,一切都进行的<body>
。需要一些附加代码才能产生所需的输出。您会看到结果代码被解析为<svg height="448" width="448" < body></svg>
,因为它写入<svg height=448 width=448 </body>
了iframe。因此,我仍然认为这是无效的。
use std::{io::Write,fs::File};fn main(){let mut v=vec![0,0,2,0,0,0,0,0,0,0,0,0,192,1,192,1,32,0];v.extend(vec![0u8;802816]);File::create("o.tga").unwrap().write(&v);}
通过按照http://paulbourke.net/dataformats/tga/的TGA二进制格式,通过将宽度和高度硬编码到二进制文件头中,从而编写了一个实际的,可读的o.tga文件,没有任何库或内置函数。
-5字节缩短文件名,固定img大小,仅@ASCII
a
可以像文件名一样工作。顺便说一句,它是448 * 448而不是444 * 444,所以这是无效的
[255,0,0,0,0]
6272次([0,0,0,0]
128次,重复6272次)。然后图像类型将10
不再2
。更好,对于较短的游程编码(0,0,0,0
-> 0
)
_=>(Enumerable.Repeat((0,0,0,0),200704),448,448)
显然输出[1D array of pixels, width, height]
是可以的,所以这将输出一个元组((像素,宽度,高度的IEnumerable)。
_=>Enumerable.Repeat(Enumerable.Repeat((0,0,0,0),448),448)
原始矩阵返回答案。
由于图像IO规则允许将输出作为RGB值矩阵,因此此提交将输出RGBA值矩阵,该矩阵由具有四个值(均为0)的元组表示。
可悲的是,PHP有点烂,因为它需要大量的代码。但是话又说回来,PHP并不烂。
$i=imagecreatetruecolor(448,448);imagesavealpha($i,true);$b=imagecolorallocatealpha($i,0,0,0,127);imagefill($i,0,0,$b);imagepng($i,'i.png');header('Content-type: image/png');readfile('i.png');
取消高尔夫:
$i=imagecreatetruecolor(448,448); // Create a new image with a set width
imagesavealpha($i,true); // Tell PHP to save alphachannels on that image
$b=imagecolorallocatealpha($i,0,0,0,127); // set the actual transparency values
imagefill($i,0,0,$b); // Fill the image with the color saved above
imagepng($i,'i.png'); // Save the file as PNG
header('Content-type: image/png'); // Set the content type for the browser
readfile('i.png'); // Read the file and output it
显然,如果只想创建而不输出它,则可以省略header()
and readfile()
命令。尽管如此,它仍然是愚蠢的。
'<?php return '.var_export(array_fill(0,952576,0),1).';';
以可执行方式导出阵列。您可以做php -f image.php > array.php
,在其他地方您可以做得到$array = include('array.php');
一个可用的数组。但是我不知道它是否有效,因此,我给您添加它作为替代。甚至一个<?=json_encode(array_fill(0,952576,0));
。
true
可以替换为1
,以节省3个字节。阅读文档imagepng()
,您可以做header('Content-type: image/png');imagepng($i);
。我相信您也可以替换为$b=imagecolorallocatealpha($i,0,0,0,127);imagefill($i,0,0,$b);
,imagefill($i,0,0,imagecolorallocatealpha($i,0,0,0,127));
但不要在此引用我的名字。
<? imagecolorallocatealpha($i=imagecreate(448,448),0,0,0,127);header('Content-type: image/png');imagepng($i);
生成了透明图像(109字节)。自动将图像发送到浏览器/标准输出以及所有内容。
Python 3.7-已导入PIL,30字节
Image.new("LA",[448]*2).show()
这需要导入,但是具有创建和显示实际图像文件而不是抽象的空数组的好处。
说明:
from PIL import Image
Image.new( // create a new image
mode="LA" // select LA colour mode, this is grey-scale plus an alpha channel
size=[448]*2 // size argument needs to be a 2D tuple, [448*2] is a better golf shot than (448,448)
color=0 // populates the image with the specified colour, helpfully preset to transparent
).show() // display the image object
Image.show()将在默认图像程序中打开图像。就我而言,这会在Windows Photo Viewer中打开一个临时位图文件,但结果可能会有所不同。可以说这是欺骗,因为位图表示不包含透明度
变化...
Image.new("LA",[448]*2) // 24 bytes but doesn't open image
Image.new("LA",[448]*2).show() // 30 bytes, shows you a bitmap
Image.new("LA",[448]*2).save("x.png") // 37 bytes, saves image to disk
Import
。
new("LA",[448]*2).show()
26个字节。
imwrite(nan(448),'.png','tr',1)
创建一个448 x 448的NaN
值矩阵,然后用于imwrite
将它们保存到名为PNG的文件中'.png'
,并将透明度设置为1,使其透明。该'Transparency'
参数的名字能够被缩写成'tr'
为MATLAB允许参数名称的部分字符串匹配,只要缩短版本可用参数中是唯一的。
a: make image![448x448 0.0.0.255]
不透明度默认为完全不透明(0)
/完整程序/:
Red [ ]
a: make image! [ 448x448 0.0.0.255 ]
view [ image a ]
_=>[w=448,w,Array(w*w).fill([0,0,0,0])]
显然输出 [height, width, 1d array of RGBA values]
可以。
-3个字节,感谢@Arnauld
[1D array of pixels, width, height]
DIM A[448,448]SAVE"DAT:I",A
将填充为0的二维448x448数组保存到名为的文件中 DAT:I
(这比定义以某种方式返回数组的函数要短)
SmileBASIC中颜色的标准格式(所有图形功能都使用)是32位ARGB和16位5551 RGBA,并且0
两种格式都是透明的。
ARGB
格式(通常在Smilebasic中使用),因此0x00000000
Alpha = 0,Red = 0,Green = 0,Blue =0。黑色为0xFF000000
。
GRP
但是我会放手,因为存储的实际数据是相同的。
Text"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
Base64Encode Decode
ResizeImage 448
采用编码为base64的1x1透明gif并调整其大小
♪☺ü@/øP♦£Q)%)£Q◄úæD)%)£Q
说明
♪☺ü@ # Push literal 448
/ # Store the first stack value in the a register.
ø # Push literal 0
P # Push four copies of the first stack value.
♦ # Push literal 4
£Q # Push stack values into a list of the size of the first stack value starting with the second stack value.
) # Push the value contained in the a register.
% # Push the second stack value the absolute value of the first stack value times.
) # Push the value contained in the a register.
£Q # Push stack values into a list of the size of the first stack value starting with the second stack value.
◄úæ # Push literal \n
D # Push the sum of the second and first stack values.
) # Push the value contained in the a register.
% # Push the second stack value the absolute value of the first stack value times.
) # Push the value contained in the a register.
£Q # Push stack values into a list of the size of the first stack value starting with the second stack value.
#include <SFML/Graphics.hpp>
void f(){sf::Image i;i.create(448,448);i.createMaskFromColor(sf::Color::Black);i.saveToFile("a.png");}