The Treachery of Image Files

  • > Despite frequent threats by the developers to remove them, the GIMP application had (at time of composition) some obscure and infrequently-used features permitting the creation and manipulation of image files.

    I chuckled.

  • > Preview cannot save files in the Graphics Interchange Format (GIF).

    It can, actually, you just need to hold done ⌥ while clicking on the file format picker. (Perhaps Apple thinks demonstrating the true capabilities of Core Image would blow the brains of Preview’s users.)

  • I wonder if there are any real programmers out there who have decoded GIF by hand. The IETF is clear that the header should be 6 7bit bytes (GIF##a), and the ends with `\x00\x3b`.

    without LZW, it should be trivial to append a frame to an image. its so hard... instead of downvoting me, does anyone know of a good/simple example of this in C/python or anything? array2gif[1] is pretty close.

    1: https://github.com/tanyaschlusser/array2gif

  • #0000FF has really seen a resurgence as of late, it is brilliant to see this medium executed by a master.

    However, where does one go from here? Does it become old hat? I hear some Avant-garde types are beginning to explore post-blue ideas. #333333 has a romantic bleakness to it that I would love to see explored.

  • I enjoyed the writing and exploration of different image creation formats. So novice question, but are the resulting GIFs actually different (and if so, how)? Or is this just different ways to generate identical output?

  • "Macintosh Operating System X Mach-O Gnu’s Not Unix-based assembler" and "Gnu’s Not Unix Plotter" ?

    But:

      % as --version
      Apple LLVM version 10.0.1 (clang-1001.0.46.4)
         ...
    
    and gnuplot (famously) isn't part of the GNU project.

    I know, missing the point, but those jarred - was that deliberate by the artist, or a mistake? In either case, it seems to distract from the overall artistic intent.

  • This is so cool. I like this guy's work. I want to see this stuff in a gallery. I mean that, I'm not being flippant or facetious.

  •   /* XPM */
      static char * treachery_xpm[] = {
      "10 10 1 1",
      "       c #0000FF",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          ",
      "          "};
    
    X Pixmap format. Save as treachery.xpm. (Made using Gimp, because it was faster than writing by hand. Sorry. But I have generated large pixel files programmatically in the X Bitmap format, which is similar but only one bit color information. Easier than writing a GIF.)

  • This is brilliant. In some ways, it reminds me of the musings about "Voice of Fire". Mostly over my head, but somehow made me smile.

    Edit: https://en.wikipedia.org/wiki/Voice_of_Fire

  • On the first one I was like, wha... but by the second and beyond I was getting a good chuckle. Great satire.

  • For, um, future reference, here's a minimal[1] RGB TIFF version suitable for assembly with nasm -f bin:

            db    'II*',0         ; header
            dd    ifd             ; offset to IFD
      xres: dd    72,1            ; XResolution value
      yres: dd    72,1            ; YResolution value
      bps:  dw    8,8,8           ; BitsPerSample value
      data: times 100 db 0,0,255  ; image data
      ifd:  dw    (next-ifd)/12   ; IFD entry count
            dw    256,4           ; ImageWidth tag, type
            dd    1               ; ImageWidth count
            dd    10              ; ImageWidth value
            dw    257,4           ; ImageLength tag, type
            dd    1               ; ImageLength count
            dd    10              ; ImageLength value
            dw    258,3           ; BitsPerSample tag, type
            dd    3               ; BitsPerSample count
            dd    bps             ; BitsPerSample offset
            dw    259,3           ; Compression tag, type
            dd    1               ; Compression count
            dw    1,0             ; Compression value, padding
            dw    262,4           ; PhotometricInterpretation tag, type
            dd    1               ; PhotometricInterpretation count
            dd    2               ; PhotometricInterpretation value
            dw    273,4           ; StripOffsets tag, type
            dd    1               ; StripOffsets count
            dd    data            ; StripOffsets value
            dw    277,3           ; SamplesPerPixel tag, type
            dd    1               ; SamplesPerPixel count
            dw    3,0             ; SamplesPerPixel value, padding
            dw    278,4           ; RowsPerStrip tag, type
            dd    1               ; RowsPerStrip count
            dd    10              ; RowsPerStrip value
            dw    279,4           ; StripByteCounts tag, type
            dd    1               ; StripByteCounts count
            dd    ifd-data        ; StripByteCounts value
            dw    282,5           ; XResolution tag, type
            dd    1               ; XResolution count
            dd    xres            ; XResolution offset
            dw    283,5           ; YResolution tag, type
            dd    1               ; YResolution count
            dd    yres            ; YResolution offset
            dw    296,3           ; ResolutionUnit tag, type
            dd    1               ; ResolutionUnit count
            dw    1,0             ; ResolutionUnit value, padding
      next: dd    0               ; next IFD offset
    
    [1] Source: page 24 of https://www.adobe.io/content/dam/udp/en/open/standards/tiff/...

  • Ceci n'est pas une bleu

  • undefined

  • am do a confuse :(