27
kiki
34d

Seven years ago, a russian artist started the "Putin Every Day" community. It started with one picture of putin. Every day, he was downloading the previous day's pic and uploading it again.

Over the course of seven years, JPEG compression artefacts built up to what you can see here.

What an amazing metaphor.

https://vk.com/putineveryday

Comments
  • 7
    Interesting art here.

    However, the point that there was a time when Putin was considered a chad.

    Artist here says the photo gradually lost the quality. Putin straight went from being a chad to a dick real quick.
  • 5
    He was always a dick.
    Also, why down/up the same file cause this?
  • 4
    @magicMirror jpeg is a lossy compression, so it loses more and more detail over time
  • 5
    @jonas-w Well. No Shit, Sherlock.

    but "the same file" was uploaded, and downloaded. Presumbably, over tcp. Not resampled/compressed/processed. So what caused the quality loss?
  • 4
    @magicMirror compression done by the host, in this case VK?
  • 1
    The last day I downloaded and uploaded the same file. Thank god it didn't change anything.
  • 2
    @magicMirror not "the same file"
    read the OP again.
    every day he downloaded the previous day's pic and then uploaded it
  • 1
    @Floydimus What? Why the fuck would vk do that?

    It makes zero sense to reduce image quality, especially when the image is already small sized, amd low quality, while processing time costs money.

    The uploader did something to the image, triggering vk to reduce the image quality.
  • 5
    @magicMirror also you can achieve that in minutes. The compression shouldn't get worse, because you waited 24h.
  • 1
    @magicMirror well, Facebook does compress images is what I know.

    While you are right that storage costs are very low and compressing the same downloaded file further isn't necessary.

    You got a point.
  • 3
    @magicMirror prolly ensuring the image is of valid properties [dimensions, depth, palette, size, etc.] & clearing/enforcing exif & injecting additional noise data in between the jpg blocks for tracking purposes & ensuring unified data format in the datastore & ensuring image can be read and understood by sw designed for it, effectively meaning not only the magic bytes are correct, but also the whole payload is; i.E. It's not a ´rm virus.exe nude-vegana.jpg´

    there are lots of reasons. The ones I've mentioned are just a few of them
  • 1
    @magicMirror many sites i've worked on or used just automatically convert any type of image into a single format (usually jpg), regardless of what the input format and dimensions are.

    this often means that yes, they even "convert" jpeg to jpeg, triggering the compression.

    yes, it is stupid, we are all aware, you're not the only "smart" person here, but that's just how it is.

    your surprise and incredulity about this is fascinating to me.
  • 0
    Can we simulate this? This is kinda cool. I wonder if going from png to jpg over and over would do this.
  • 0
    Attempt that failed:
  • 0
    Original:
  • 0
    Output:
  • 0
    #!/usr/bin/python3

    import shutil

    import subprocess

    original = "devrantfirsttime_orig.jpg"

    copyjpg = "devrantfirsttime.jpg"

    copypng = "devrantfirsttime.png"

    output = "devrantfirsttime_out.jpg"

    # use imagemagick

    corruptionprocess = "convert"

    corrupttopng = [corruptionprocess, copyjpg, copypng]

    corrupttojpg = [corruptionprocess, copypng, "-quality", "80", copyjpg]

    corruptiontimes = 100

    # copy file from original

    shutil.copy(original, copyjpg)

    for ind in range(corruptiontimes):

    subprocess.call(corrupttopng)

    subprocess.call(corrupttojpg)

    shutil.copy(copyjpg, output)

    Here, if you want to try.
  • 0
    Just tried 365 days and it looks the same. I will try 7 years now.

    Is there an easy way to write this to a memory drive in Linux? I feel like this might be hard on my ssd.
  • 0
    If y’all wanna know how jpeg works: https://youtu.be/0me3guauqOU
  • 0
    Okay, now using ramdisk:

    https://linuxbabe.com/command-line/...

    Less wear and tear on ssd.
  • 3
    @Demolishun Your method will not damage the file. you will end up with the same file.
    You need to do something like loading the file into a memory bitmap using PIL, and writing it out to disk using jpeg, with 99% compression. repeat that a few times....
  • 0
    @magicMirror Why would loading it into a memory bitmap do anything? What is PIL?
  • 0
    @magicMirror I am writing it out with 80% quality each time. I cannot believe a website would write it out at 1% quality.
  • 0
    @magicMirror this is what it looks like with 1% quality (99% compression) just running it through once (one conversion total):
  • 2
    Getting closer. I added noise with

    +noise uniform -attenuate 0.01

    corrupttojpg = [corruptionprocess, copypng, "-quality", "80", "+noise", "Uniform", "-attenuate", "0.01", copyjpg]
  • 1
    @Demolishun
    Yup. PIL is the Python Image Library, and can fuck up jpeg images quite nicely. If thats thats what you want...
  • 1
    @magicMirror I am starting with imagemagick. I figured a website would actually use that to convert images as it is pretty common.
  • 1
    @kiki

    Has anyone turned this into an animated gif or video? That would be neat to see.
  • 2
    @Demolishun please deepfry me
  • 5
  • 0
    @jonas-w What did you use?
  • 1
    @Demolishun only the `convert` command
  • 2
    @jonas-w thank you ❤️
  • 2
Add Comment