commit 4ff434fc3228d9fbbdb5cddba3c90ee940a4bc2a Author: No Body Date: Thu Mar 19 23:32:01 2020 -0400 initial commit diff --git a/bitmap.png b/bitmap.png new file mode 100644 index 0000000..edd7c19 Binary files /dev/null and b/bitmap.png differ diff --git a/drawing.svg b/drawing.svg new file mode 100644 index 0000000..c74d91b --- /dev/null +++ b/drawing.svg @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + ALL THESEOPENWINDOWS,BUT NOFRESH AIR. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lain-rainbow.c b/lain-rainbow.c new file mode 100644 index 0000000..28cb718 --- /dev/null +++ b/lain-rainbow.c @@ -0,0 +1,70 @@ +#include +#include +#define M_PI 3.14159265358979323846 + +static double width, height; +static char path_output[512]; +static cairo_t *cr; +static cairo_surface_t *surface; + +struct rgb { + double r, g, b; +} values[] = { + {0, .7, .9}, + {.5, .9, .5}, + {1., 1., .4}, + {1., .8, .5}, + {1., .6, .65}, + {1., .4, .9}, +}; +#define NVALUES 6 + +int start = 0; + +void lain_rainbow(cairo_t * cr) { + unsigned ii, jj; + double dy, dx, x0, y0, x1, y1, red, green, blue; + + /* Outer black border */ + red = green = blue = 1.; + cairo_set_line_width(cr, 0); + cairo_set_source_rgba(cr, red, green, blue, 1.); + + cairo_rectangle(cr, 0, 0, width, height); + cairo_fill(cr); + + /* Colors */ + x1 = width; + dx = width / 36; + y1 = dy = height / 36; + x0 = 0; + y0 = 0; + for (ii = start, jj = 0; jj < 36; jj++, ii++) { + cairo_rectangle(cr, x0, y0, x1, y1); + cairo_set_source_rgba(cr, values[ii % NVALUES].r, values[ii % NVALUES].g, values[ii % NVALUES].b, 1.); + cairo_fill(cr); + y0 += dy; + x1 += dx; + y1 += dy; + } +} + +int main(int argc, char **argv) { + int n; + width = 3840; + height = 2160; + sprintf (path_output, "stage1-00.png"); + if (argc == 2) { + n = 0; + sscanf(argv[1], "%d", &n); + start = n; + sprintf (path_output, "stage1-%02d.png", n); + } + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); + cr = cairo_create(surface); + lain_rainbow(cr); + cairo_surface_write_to_png (surface, path_output); + cairo_surface_destroy(surface); + cairo_destroy(cr); + return 0; +} diff --git a/lain.mp4 b/lain.mp4 new file mode 100644 index 0000000..cd65a52 Binary files /dev/null and b/lain.mp4 differ diff --git a/lain.png b/lain.png new file mode 100644 index 0000000..97bd832 Binary files /dev/null and b/lain.png differ diff --git a/lain.xcf.xz b/lain.xcf.xz new file mode 100644 index 0000000..1f91b7f Binary files /dev/null and b/lain.xcf.xz differ diff --git a/makefile b/makefile new file mode 100644 index 0000000..9ef623d --- /dev/null +++ b/makefile @@ -0,0 +1,25 @@ +FRAMES = 00 01 02 03 04 05 +FRAMES_SUFFIX = .png +STAGE1_NAME = stage1- +STAGE2_NAME = stage2- +STAGE1_FILES := $(addprefix $(STAGE1_NAME),$(FRAMES)) +STAGE1_FILES := $(addsuffix $(FRAMES_SUFFIX),$(STAGE1_FILES)) +STAGE2_FILES := $(addprefix $(STAGE2_NAME),$(FRAMES)) +STAGE2_FILES := $(addsuffix $(FRAMES_SUFFIX),$(STAGE2_FILES)) + +all: $(STAGE1_FILES) $(STAGE2_FILES) lain.mp4 + +lain-rainbow: lain-rainbow.c + $(CC) -W -Wall -Werror -Wextra -std=c89 $^ -o $@ $(shell pkg-config --cflags --libs cairo cairo-svg) + +$(STAGE1_NAME)%.png: lain-rainbow + ./lain-rainbow $* + +$(STAGE2_NAME)%.png: $(STAGE1_NAME)%.png + composite lain.png $(STAGE1_NAME)$*.png $(STAGE2_NAME)$*.png + +lain.mp4: $(STAGE2_FILES) + ffmpeg -re -stream_loop -1 -y -i "$(STAGE2_NAME)%02d.png" -vf 'zoompan=d=.5:s=3840x2160:fps=2,framerate=25:interp_start=0:interp_end=255:scene=100' -c:v mpeg4 -maxrate 5M -q:v 2 -t 0:0:3 $@ + +clean: + $(RM) lain-rainbow $(STAGE1_FILES) $(STAGE2_FILES) diff --git a/original.gif b/original.gif new file mode 100644 index 0000000..857762e Binary files /dev/null and b/original.gif differ diff --git a/readme.org b/readme.org new file mode 100644 index 0000000..542e4f6 --- /dev/null +++ b/readme.org @@ -0,0 +1,27 @@ +#MODE: -*- org -*- + +* Info + + - ~original.gif~ is the original image + - ~drawing.svg~ is a vector of the important parts + - ~lain.xcf~ contains all ~source_images~ and masking to produce ~lain.png~ + - ~lain.png~ is combined with 6 frames of ~stage1-%02d.png~ to produce ~stage2-%02d.png~ + - ~stage2-%02d.png~ is merged into ~lain.mp4~ with ~ffmpeg~ + +* Usage + #+BEGIN_SRC + mpv --loop=inf --vo=vdpau lain.mp4 + #+END_SRC + +* Source Images + No idea where these came from. I guess around the net. Google. + You could probably reverse image search. + +* Dependencies + - cc + - mpv (for viewing) + - make + - imagemagick + - libcairo2-dev + - gimp (for editing xcf) + - inkscape (for editing svg) diff --git a/source_images/98-second-edition-4a2efd79f32b94b72c34244bd114a88c-w98-2014-09-13-21-59-59.png b/source_images/98-second-edition-4a2efd79f32b94b72c34244bd114a88c-w98-2014-09-13-21-59-59.png new file mode 100644 index 0000000..9e27499 Binary files /dev/null and b/source_images/98-second-edition-4a2efd79f32b94b72c34244bd114a88c-w98-2014-09-13-21-59-59.png differ diff --git a/source_images/Amiga-OSX_1.png b/source_images/Amiga-OSX_1.png new file mode 100644 index 0000000..e2f4d1d Binary files /dev/null and b/source_images/Amiga-OSX_1.png differ diff --git a/source_images/a4000_05.jpg b/source_images/a4000_05.jpg new file mode 100644 index 0000000..5940933 Binary files /dev/null and b/source_images/a4000_05.jpg differ diff --git a/source_images/amigaos_1-0b3_workbench_2012.png b/source_images/amigaos_1-0b3_workbench_2012.png new file mode 100644 index 0000000..3551f57 Binary files /dev/null and b/source_images/amigaos_1-0b3_workbench_2012.png differ diff --git a/source_images/download (1).gif b/source_images/download (1).gif new file mode 100644 index 0000000..0a91383 Binary files /dev/null and b/source_images/download (1).gif differ diff --git a/source_images/download (1).jpeg b/source_images/download (1).jpeg new file mode 100644 index 0000000..ef0a28d Binary files /dev/null and b/source_images/download (1).jpeg differ diff --git a/source_images/download (2).gif b/source_images/download (2).gif new file mode 100644 index 0000000..cbdbf69 Binary files /dev/null and b/source_images/download (2).gif differ diff --git a/source_images/download (2).jpeg b/source_images/download (2).jpeg new file mode 100644 index 0000000..59bd682 Binary files /dev/null and b/source_images/download (2).jpeg differ diff --git a/source_images/download (3).jpeg b/source_images/download (3).jpeg new file mode 100644 index 0000000..3171255 Binary files /dev/null and b/source_images/download (3).jpeg differ diff --git a/source_images/download.gif b/source_images/download.gif new file mode 100644 index 0000000..9115e4c Binary files /dev/null and b/source_images/download.gif differ diff --git a/source_images/download.jpeg b/source_images/download.jpeg new file mode 100644 index 0000000..f16dd42 Binary files /dev/null and b/source_images/download.jpeg differ diff --git a/source_images/download.png b/source_images/download.png new file mode 100644 index 0000000..c95589d Binary files /dev/null and b/source_images/download.png differ diff --git a/source_images/microsoft-paint-windows-98-136398854913902601.jpeg b/source_images/microsoft-paint-windows-98-136398854913902601.jpeg new file mode 100644 index 0000000..d42cf08 Binary files /dev/null and b/source_images/microsoft-paint-windows-98-136398854913902601.jpeg differ diff --git a/source_images/win31.png b/source_images/win31.png new file mode 100644 index 0000000..5551840 Binary files /dev/null and b/source_images/win31.png differ diff --git a/source_images/win31progman2.png b/source_images/win31progman2.png new file mode 100644 index 0000000..4249c0f Binary files /dev/null and b/source_images/win31progman2.png differ diff --git a/source_images/win95-2-1.png b/source_images/win95-2-1.png new file mode 100644 index 0000000..1e435cc Binary files /dev/null and b/source_images/win95-2-1.png differ diff --git a/source_images/win95cpl.png b/source_images/win95cpl.png new file mode 100644 index 0000000..1af65cd Binary files /dev/null and b/source_images/win95cpl.png differ diff --git a/source_images/win95msdos.png b/source_images/win95msdos.png new file mode 100644 index 0000000..2289e4e Binary files /dev/null and b/source_images/win95msdos.png differ