制作 GIF 最难的方式
The hardest way to make a GIF

原始链接: https://blog.willgrant.org/2026/07/23/the-hardest-way-to-make-gif.html

基于“有些无意义的事情即便只是为了好玩也值得一做”的信念,本项目详细记录了制作 GIF 的“最硬核方式”。 整个过程始于一台复古的 Lomo ActionSampler,这是一款使用 35mm 胶卷、通过发条驱动、每秒能拍摄四帧的塑料相机。作者摒弃了现代数字化的便利,全程在家使用传统化学药剂进行手工冲洗。图像数字化则采用 DIY 方式:用单反相机在灯箱上逐一翻拍胶片,将 RAW 格式文件导入编辑软件,并细致地裁剪和对齐这些参差不齐的底片。 最后,通过 ImageMagick 命令行工具处理图像。为了弥补低帧率的不足,作者创建了“补间”帧来融合图像,从而生成一种更流畅、循环往复的“乒乓”动画。最终呈现出的 GIF 充满迷人的低保真质感,这趟从模拟到数字的复杂旅程,正是对“将简单任务过度复杂化”所带来的纯粹乐趣的致敬。

这篇 Hacker News 帖子讨论了《制作 GIF 最困难的方法》一文,详细介绍了创建动画图像的一种过度复杂的过程。 评论者觉得这种极端的努力很有趣,经常将其与卡尔·萨根(Carl Sagan)的名言相提并论:“如果你希望从零开始制作一个苹果派,你必须首先发明宇宙。”一位用户幽默地指出,作者从“获取光子”开始这种字面意义上的做法,完美地捕捉到了这一精髓。另一位参与者开玩笑地表示,作者最终使用 ImageMagick 来完成文件制作令人失望,并建议在文本编辑器中手动构建 GIF 才算更令人印象深刻的“困难方法”。此次讨论还将此文与大卫·林奇(David Lynch)的实验电影作品进行了比较,凸显了社区对这种技术荒诞感的欣赏。
相关文章

原文

Everyone loves a good GIF, and my favourite (of all time) is this one (circa 2015):

Elmo burns it all

Let’s make a GIF in the hardest way possible.

Why? It’s pointless, but some pointless things are just fun to do.

Step 1: Acquire photons

For this step I’ll be using the Lomo ActionSampler, a plastic camera made in China by a series of anonymous unknown factories. It’s been branded as many different things over the years, including as the Revolver Selby in 1991, so it’s a design that’s at least 35 years old.

Battered ActionSampler Camera

The camera uses a unique clockwork spring-powered mechanism to rotate a circular shutter over 4 different lenses, at a speed of around 1/250s per frame. This means, if you’re lucky, you can capture 1 second of action at a glorious 4 frames per second.

Because you never really know how the photos will turn out, I’ll shoot a 36 exposure roll of Lucky SHD 400 film, and we’ll see what we get. Now that our photos are captured on China’s finest cheapest black and white film, we need to make them visible.

Step 2: Develop film

I could send the film off to a lab for developing and scanning, but this is the hardest way to make a GIF. I develop film at home so luckily I have all the requisite parts:

  • Developer tank and reel
  • Ilford Ilfosol 3 developer
  • Ilford Rapidfix fixer
  • A dark bag
  • Jugs, thermometer and other assorted accessories

Highly professional film developing set-up

By a combination of luck and limited skill, it worked! We have developed film, each frame containing 4 images captured at 4 frames per second.

Actual images have been produced

Step 3: Scan images

I don’t have a fancy film scanner, so for this I’ll be mounting each frame on an LED light panel then taking a photo with a digital camera on a tripod, with lots of light and a small aperture to try to get the best detail possible. I’ll shoot the frames in RAW which will give me some flexibility in the software later to expose them more correctly. This is similar to the digital intermediary phase in “real” filmmaking.

I loaded the RAW files into Affinity and eyeballed the exposure to hopefully get useful images back. They’re inverted of course, so a quick cmd+i inverts them the right way round.

One ActionSampler frame with 4 images

Step 4: Crop frames

The alignment of each 4 frames within the 35mm frame is not exact (this is a plastic camera from the 1990s after all). In fact frames 1 and 2 are a different width to frames 3 and 4, so I’ll need to crop each frame, then align them as layers manually in Affinity. Making the frames 50% transparency helps as a rudimentary form of onion skinning.

Now we export the frames as PNGs, and number them by frame order.

Step 5: Align frames and Gif-ify

Using imagemagick on the command line I was able to combine the images into a GIF. I went for a “ping pong” animation style, just to make the GIF last a little longer and give a better sense of the motion.

magick -delay 25 -loop 0 1.png 2.png 3.png 4.png 3.png 2.png animated.gif

Delay 25 means 25/100ths of a second, or 4fps - making it more lifelike to the real world it was captured from.

Naturally with 4fps this isn’t exactly like watching a Pixar movie, so I created some tweens by blending frames at 50% opacity each using:

magick 1.png 2.png -define compose:args=50,50 -compose blend -composite 1-2-tween.png

With these tween frames as part of the animation it appears much smoother.

And there you have it! A looping animated GIF, acquired from the real world on 35mm film. Next project: do it with IMAX. ;)

Here are some of my favourites:

35mm GIF Animation of a dog

35mm GIF Animation of a some people

35mm GIF Animation of a claw machine

35mm GIF Animation of a bingo game

35mm GIF Animation of a some plants

35mm GIF Animation of a mini train

35mm GIF Animation of a ShopMobility Scooter

35mm GIF Animation of people walking

联系我们 contact @ memedata.com