DeprecationWarning: 'mode' parameter is deprecated and will be removed in Pillow 13 (2026-10-15)
img1 = PIL.Image.fromarray(my_array, mode="RGB")
So I went to see the documentation:
https://hugovk-pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.fromarray
And came out empty handed, that is, couldnβt understand what to do instead :(
And the plot thickens:
https://github.com/python-pillow/Pillow/pull/9063
(@py5coding I guess youβll want to check this out at some point. py5_tools.animated_gif uses this)
DeprecationWarning: 'mode' parameter is deprecated and will be removed in Pillow 13 (2026-10-15)
img1 = PIL.Image.fromarray(my_array, mode="RGB")
So I went to see the documentation:
https://hugovk-pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.fromarray
And came out empty handed, that is, couldnβt understand what to do instead :(
And the plot thickens (this affects many projects, there are some workarounds, but some argument about βrevertingβ this change allowing some βmodeβ on import):
https://github.com/python-pillow/Pillow/pull/9063
(@py5coding@py5coding I guess youβll want to check this out at some point. py5_tools.animated_gif uses mode=βRGBβ)
#Pillow #PIL #Python
On Image.fromarray()
:
DeprecationWarning: 'mode' parameter is deprecated and will be removed in Pillow 13 (2026-10-15)
img1 = PIL.Image.fromarray(my_array, mode="RGB")
So I went to see the documentation:
https://hugovk-pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.fromarray
And came out empty handed, that is, couldnβt understand what to do instead :(
And the plot thickens (this affects many projects, there are some workarounds, but some argument about βrevertingβ this change allowing some βmodeβ on import):
https://github.com/python-pillow/Pillow/pull/9063
(@py5coding@py5coding I guess youβll want to check this out at some point. py5_tools.animated_gif uses mode=βRGBβ)
@prologic@twtxt.net Yeah, this really could use a proper definition or a βmanifestβ. π Many of these ideas are not very wide spread. And I havenβt come across similar projects in all these years.
Letβs take the farbfeld image format as an example again. I think this captures the βspiritβ quite well, because this isnβt even about code.
This is the entire farbfeld spec:
farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format:
ββββββββββ€ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Bytes β Description β
β βββββββββͺββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β 8 β "farbfeld" magic value β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β 4 β 32-Bit BE unsigned integer (width) β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β 4 β 32-Bit BE unsigned integer (height) β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β [2222] β 4x16-Bit BE unsigned integers [RGBA] / pixel, row-major β
ββββββββββ§ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The RGB-data should be sRGB for best interoperability and not alpha-premultiplied.
(Now, I donβt know if your screen reader can work with this. Let me know if it doesnβt.)
I think these are some of the properties worth mentioning:
- The spec is extremely short. You can read this in under a minute and fully understand it. That alone is gold.
- There are no βknobsβ: Itβs just a single version, itβs not like thereβs also an 8-bit color depth version and one for 16-bit and one for extra large images and one that supports layers and so on. This makes it much easier to implement a fully compliant program.
- Despite being so simple, itβs useful. Iβve used it in various programs, like my window manager, my status bars, some toy programs like βtuxeyesβ (an Xeyes variant), or Advent of Code.
- The format does not include compression because it doesnβt need to. Just use something like bzip2 to get file sizes similar to PNG.
- It doesnβt cover every use case under the sun, but it does cover the most important ones (imho). They have discussed using something other than RGBA and decided itβs not worth the trouble.
- They refrained from adding extra baggage like metadata. It would have needlessly complicated things.
M0SS-101 Synth with BL616 RISC-V Delivers Classic Controls in a Compact DIY Kit
The M0SS-101 is a compact virtual analog monosynth designed for hands-on subtractive synthesis. It features 42 editable parameters accessible through 26 buttons and a rotary encoder, with RGB LEDs providing visual feedback for signal flow and modulation. The synth includes dual oscillators, a multi-mode filter, envelope and LFO control, delay effects, and 17 preset slots [β¦] β Read more
UNIHIKER K10 is an ESP32-S3 based platform with TinyML and built-in sensors
The UNIHIKER K10 is an AI learning device designed for education, integrating features for artificial intelligence, machine learning, and IoT applications. It includes a 2.8β³ color screen, Wi-Fi, Bluetooth, a camera, microphone, speaker, RGB light, and multiple sensors. The device features an ESP32-S3 Xtensa LX7 microcontroller with 512KB SRAM and 16MB flash storage. It supports [β¦] β Read more
M5Stack Cardputer v1.1 Brings Upgraded Microcontroller and Improved Keyboard
M5Stack has released Cardputer v1.1, an upgraded version of its compact computing platform. The latest version introduces the StampS3A microcontroller, an improved antenna, and a more responsive keyboard, enhancing stability and usability. Additional refinements include optimized power consumption and better RGB LED control, improving overall efficiency. Cardputer v1.1 features the StampS3A, β¦ β Read more
Orbbec Introduces Perceptor Dev Kit for Advanced AMR Development with NVIDIA Isaac
Orbbec unveiled the Orbbec Perceptor Developer Kit at ROSCon 2024 in Odense, Denmark, offering a comprehensive, out-of-the-box solution for autonomous mobile robot development. Developed in collaboration with NVIDIA, the OPDK is designed to streamline application development for dynamic environments, such as warehouses and factories. The OPDK integrates four Gemini 335L Depth+RGB β¦ β Read more
Orbbecβs Latest AI-Driven Camera with PoE priced at $479.99
The Gemini 2 XL, Orbbecβs latest addition to 3D vision technology, is engineered for a variety of robotic and AI-driven applications. This camera excels in providing accurate and dependable data in diverse lighting environments, from absolute darkness to bright outdoor conditions. Equipped with a global shutter for both RGB and IR cameras, it ensures high-quality, [β¦] β Read more
The QOI File Format Specification
Last month I announced a
toy project called QOI β the Quite OK Image Format. It losslessly compresses
RGB and RGBA images to a similar size of PNG, while offering a 20x-50x
speedup in compression and 3x-4x speedup in decompression.
With the help of countless passionate people on Github, we have refined some of
the rough edges and specified exactly what β¦ β Read more
Lossless Image Compression in O(n) Time
Introducing QOI β the Quite OK Image Format. It losslessly compresses RGB and
RGBA images to a similar size of PNG, while offering a 20x-50x speedup in
compression and 3x-4x speedup in decompression. All single-threaded, no
SIMD. Itβs also stupidly simple.
tl;dr: 300 lines of C, single header,
source on github,
benchmark results here.
![QOI compression](/content/a β¦ β Read more