language agnostic - Código de Golf: 1x1 pixel negro
language-agnostic code-golf (17)
Python (w / PIL) (85 caracteres):
from PIL import Image
i=Image.new("P",(1,1))
i.putpixel((0,0),(0))
i.save("i.gif","GIF")
Recientemente, utilicé mi editor de imágenes favorito para crear un píxel negro de 1x1 (que puede ser útil cuando desee dibujar cuadros sólidos en HTML a bajo precio). Aunque lo hice un PNG monocromático, ¡resultó ser 120 bytes! Quiero decir, eso es un poco empinado. 120 bytes. Por un pixel Luego lo convertí en un GIF, que bajó el tamaño a 43 bytes. Mucho mejor, pero aún ...
Reto
El archivo o programa de imagen más corto que es o genera un píxel negro de 1x1. Una presentación puede ser:
- Un archivo de imagen que representa un píxel negro de 1x1. El formato elegido debe ser capaz de representar imágenes más grandes que 1x1, y no puede ser ad-hoc (es decir, no puede ser un formato de imagen que acaba de inventar para el código de golf). Los archivos de imagen se clasificarán por recuento de bytes.
- Un programa que genera un archivo de imagen de este tipo. Los programas se clasificarán por recuento de caracteres, como es habitual en el código de golf.
Mientras una respuesta caiga en una de estas dos categorías, cualquier cosa es juego limpio.
Además, para los archivos de imagen, especifíquelos en hexadecimal o escapes en lugar de utilizar un host de imagen externo :-)
Python + PIL 68 caracteres
from PIL import Image
Image.fromstring("P",(1,1),"/0").save("B.gif")
bash: 31 caracteres
La secuencia de comandos para descargar un solo píxel GIF de las interwebs es menos bytes que el píxel individual en sí ...
wget http://tinyurl.com/2w97dyo
URI de datos , 83 caracteres
data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==
Archivo de imagen: 10 bytes , en formato PGM :
P5 1 1 1/n/0
Para crearlo, en Python: 40 caracteres
open(''b.pgm'', ''w'').write(''P5 1 1 1/n/0'')
El formato PBM es un formato de gráficos en blanco y negro.
Una representación binaria de un solo píxel negro tomaría 8 bytes, y escribirlo en un archivo con C # se vería así:
File.WriteAllText("p.pbm", "P4 1 1 ÿ");
Formato de arte Unicode :
·
Logo / Tortuga básica, 12 bytes
PENDOWN FD 1
No puedo recordar si pendown
se puede acortar a pd
o no, de ser así, eso lo deja caer a 7 bytes.
Posdata, 29 bytes. no es realmente un "solo píxel", pero era un solo píxel en mi pantalla de vista previa.
0 0 moveto .5 0 lineto stroke
Un viejo formato de imagen que solía usar: 4 bytes
01 00 00 0C
El formato consiste en una matriz de enteros de 16 bits (little endian):
Mapeo de bits:
0-10: number of pixels to shade
10-11: control bits
12-15: VGA16 pidel color
Valores de bits de control:
0: normal
1: end of line
3: end of file
XPM , 57 bytes :
/* XPM */
static char *_x_[] = {"1 1 1 1",".c #000","."}
Cuando busqué el artículo de wikipedia para vincularlo, encontré XPM2, 26 bytes , pero no pude abrirlo con ningún programa aquí.
! XPM2
1 1 1 1
. c #000
.
SVG, 59 caracteres:
<svg><rect width="1" height="1" style="fill:#000;"/></svg>
Desafortunadamente, incluyendo Doctype crece a 157 ...:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg><rect width="1" height="1" style="fill:#000;"/></svg>
Rebmu : 16 caracteres
en''PNGmkIM![1x1]
Si desea guardarlo en un archivo basado en un argumento que transfiere, eso agrega tres caracteres más al programa:
rebmu/args [wrAen''PNGmkIM![1x1]] %my-black-pixel.png
El programa es una abreviatura de los siguientes Rebol, paréntesis agregados para mayor claridad:
write a (encode ''png (make image! [1x1]))
DrRacket : 23 caracteres
#lang slideshow
(disk 1)
Llego bastante tarde a esta fiesta, pero http://www.perlmonks.org/?node_id=7974 tiene una respuesta más general que la que se ha publicado hasta ahora:
## tinygif
## World''s Smallest Gif
## 35 bytes, 43 if transparent
use strict;
my($RED,$GREEN,$BLUE,$GHOST,$CGI);
## Adjust the colors here, from 0-255
$RED = 255;
$GREEN = 0;
$BLUE = 0;
## Set $GHOST to 1 for a transparent gif, 0 for normal
$GHOST = 0;
## Set $CGI to 1 if writing to a web browser, 0 if not
$CGI = 0;
$CGI && printf "Content-Length: %d/nContent-Type: image/gif/n/n",
$GHOST?43:35;
printf "GIF89a/1/0/1/0%c/0/0%c%c%c/0/0/0%s,/0/0/0/0/1/0/1/0/0%c%c%c/1/0;",
144,$RED,$GREEN,$BLUE,$GHOST?pack("c8",33,249,4,5,16,0,0,0):"",2,2,4;
<div style="height: 0; width: 1px; border-top: 1px solid #000">
Pero posicionarlo tomará más.