{"id":952,"date":"2009-03-09T19:54:19","date_gmt":"2009-03-09T08:54:19","guid":{"rendered":"http:\/\/www.somethinkodd.com\/oddthinking\/?p=952"},"modified":"2009-03-09T19:54:19","modified_gmt":"2009-03-09T08:54:19","slug":"progressive-jpeg-stunt","status":"publish","type":"post","link":"https:\/\/www.somethinkodd.com\/oddthinking\/2009\/03\/09\/progressive-jpeg-stunt\/","title":{"rendered":"Progressive JPEG Stunt"},"content":{"rendered":"<p>(This is a dead-end idea that I don&#8217;t plan to chase up, but I am recording for posterity, and perhaps to inspire others.)<\/p>\n<p><a href=\"http:\/\/www.faqs.org\/faqs\/jpeg-faq\/part1\/section-11.html\">Progressive JPEG<\/a> is an image-compression format that is designed to have a low-quality image stored at the beginning of the file, and more detail\/quality progressively added towards the end of the file. The goal is to enable a blurry image to be displayed by an image browser early before the whole image is available. The blurry image should be enough to get a strong idea of what the picture is about, so you can decided whether to wait for the full image to download.<\/p>\n<p>My idea is to have fun with people by making the blurry image counter-indicate what the final image is.<\/p>\n<p>For example, if you answer a quiz on a web-site, a big graphics image appears giving your result. The blurry outline might appear to say &#8220;INCORRECT&#8221; but the detail, once it is filled in, might obliterate the &#8220;IN&#8221;, leaving &#8220;CORRECT&#8221;.<\/p>\n<p>Or perhaps a web-site <em>appears<\/em> to be downloading a NSFW image, but at the last minute it turns into a child-friendly picture of a pony galloping across a rainbow.<\/p>\n<p>I simply don&#8217;t know enough about the JPEG standards to know whether this would be a challenging image hack, or whether (for example) it is possible to create a (bloated) JPEG file that progressively overwrites every single pixel of the initial blurry image, so it is easy to convert from any initial image to any final image.<\/p>\n<p>It could have some fun applications, though.<\/p>\n<p>Even if you don&#8217;t get it working in JPEG, it could become an animation in PowerPoint to get some cheap laughs during a presentation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A half-baked idea on how to make a web-site <em>appear<\/em> to be downloading a NSFW image, but at the last minute it turns into a child-friendly picture of a pony galloping across a rainbow.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[31,27],"tags":[],"class_list":["post-952","post","type-post","status-publish","format-standard","hentry","category-geek","category-thoughts-from-the-shower"],"_links":{"self":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/comments?post=952"}],"version-history":[{"count":3,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/952\/revisions"}],"predecessor-version":[{"id":955,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/952\/revisions\/955"}],"wp:attachment":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/media?parent=952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/categories?post=952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/tags?post=952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}