"Seamos realistas, las imágenes alineadas son como pequeños regalos del cielo. Bienvenido, pero inesperado". - Geobits
+10000 reputación a quien gane este desafío.
Reglas:
1) Debes generar un programa.
2) La entrada será una imagen, sin embargo, si se pasa como un archivo o una lista de números depende de usted.
3) La salida será un archivo que cuando se abra en paint (o similar) mostrará la imagen alineada.
4) El tamaño del lienzo siempre estará entre 100 x 100 y 2000 x 2000 píxeles. Siempre será un rectángulo, pero no siempre un cuadrado.
5) Sin codificación rígida de imágenes o magia de URL funky.
6) No se utilizarán bibliotecas externas.
Guía de centralización (variante Joshpbarron)
Una imagen se definirá como centrada si el primer blanco (255,255,255,> 0 rgba) o transparente (x, y, z, 0 rgba) en un eje está a la misma distancia (más o menos 1 píxel) desde el borde del lienzo.
Esto se puede lograr (y se verificará mediante) el siguiente método.
1) Imagine un cuadro delimitador alrededor del objeto. (Líneas negras agregadas para ayuda)
2) Mueva el objeto alrededor hasta que el borde del objeto esté a la misma distancia del borde apropiado del lienzo.
3) Ahora olvida las líneas negras.
Entrada:
Salida:
Más entradas aquí .
Y salidas respectivas aquí .
El representante de +10000 es una mentira.
fuente
Respuestas:
Python 3,
120205 bytesEDITAR : como la imagen de salida debe tener el mismo tamaño que la entrada, el script se alarga ...
EDIT2 : Parece que la regla 6 (sin biblioteca externa) se ha agregado después de que respondí, por lo que esta respuesta se considerará no válida de todos modos :(
La versión anterior acaba de recortar la imagen de entrada:
ambos scripts leen el nombre del archivo de imagen desde stdin y guardan la imagen de salida como 'o.png'. por ejemplo :
Acepta al menos imágenes PNG (potencialmente con un canal alfa): probado 'ok' en el conjunto proporcionado por el autor de la pregunta.
... esperando mi recompensa):
fuente
python3 script.py <<< s2rMqYo.png
es más limpioHTML5 + JavaScript (ES5), 515 bytes
Ese recuento incluye las etiquetas HTML, ya que son parte del programa. Si solo cuenta el código de procesamiento de imágenes, son 376 bytes, incluido el contenedor de funciones.
Entrada
Una URL a una imagen.
Restricciones de seguridad
Debido a que este programa se ejecuta en un entorno de navegador, solo funcionarán las URL para imágenes habilitadas para CORS . Imgur está habilitado para CORS.
IE 10 no es compatible con CORS. Todavía no he probado en IE 11 pero funciona en Chrome y Firefox.
Como correr
Salida
Se muestra en el lienzo de la página.
Como se trata de una aplicación basada en navegador, las restricciones de seguridad impiden la descarga automática de un archivo, pero puede hacer clic derecho y guardar la imagen en Chrome y Firefox. Todavía no he probado en IE 11.
Manifestación
El código JavaScript se ha eliminado del
script
elemento y se ha colocado en el área adecuada para acomodar fragmentos de pila:fuente
Procesamiento 2 -
323450La imagen se lee del archivo f.png en la carpeta de datos del boceto. Coloca la imagen y determina sus límites. Calcula la posición correcta y reemplaza la imagen desplazada correctamente.
versión legible:
Salida de ejemplo:
Puedes obtener el procesamiento aquí
fuente
PImage p=loadImage("h.png");
en la parte superior.color(-1)
ybackground(-1)
son 1 byte más cortos quecolor(255)
ybackground(255)
respectivamente. Y creo que puede eliminar elP2D
en lasize
llamada