Open-source News

LLVM Begins Landing Support For Zstd Compressed ELF Debug Sections (ELFCOMPRESS_ZSTD)

Phoronix - Sat, 09/10/2022 - 17:11
Following the news from this summer of Zstd compression being eyed for use within LLVM, the code has begun being merged to allow for Zstd-compressed ELF debug sections as an alternative to the long-used Zlib...

5 ways to resize and optimize images for the web on Linux

opensource.com - Sat, 09/10/2022 - 15:00
5 ways to resize and optimize images for the web on Linux Seth Kenlon Sat, 09/10/2022 - 03:00

There was a time when 5 MB was the reasonable maximum size for an email attachment. Today, it's easily possible for a single photo to be 5 MB. Accordingly, the maximum attachment size has increased to, say, 25 MB. But of course file sizes are getting bigger and bigger too, and so eventually the attachment limit will go up too. It's an endless cycle, common in the digital world: the tools are built for today's data, and today's data increases in complexity and size until the tools are revised and improved. You have to contain data, preferably in the smallest packaging possible, so that sharing it online goes faster for everyone. Here are five ways to optimize images for the Internet.

What image size is good for the web?

First of all, there are two kinds of "sizes" when discussing digital images. The image size represents how many pixels wide and high an image is when you look at it on your screen. The file size represents how many bytes on a hard drive or SD card the image uses. It's the file size that limits how easy something is to send it over the Internet because we all have different bandwidth allotments from our Internet providers and infrastructure. Of course, the larger the image size, the larger the file size, so the two are related.

To avoid confusion, in this article I use the term "image size" to refer to the pixel width and height of an image, and the term "file size" to refer to the bytes on a hard drive occupied by an image file.

It's hard to know exactly what a "reasonable" image size and file size is for a photo on the Internet or being sent over email. There are some reasonable expectations, though. If you're posting a photo to a website, whether it's your own blog or to social media, it's probable that most people are going to be viewing the photo at a resolution consistent with whatever's in stores. Your screen size, at least in 2022, is probably 1920 by 1080 (high definition, or HD) or thereabouts. Your photo, then, probably doesn't need to be any bigger than 1920 by 1080. Even people with a screen twice as big as yours could let your photo take up half their screen, which is probably sufficient.

The other part of the equation is the file format. Many file formats, like JPEG and PNG, imply a certain amount of compression. The more compression, the smaller the file size, but too much compression can render a blurry image. I like the WEBP format, which tends to have quality better than JPEG at a smaller file size. It's well supported by image applications and all major web browsers.

More Linux resources Linux commands cheat sheet Advanced Linux commands cheat sheet Free online course: RHEL technical overview Linux networking cheat sheet SELinux cheat sheet Linux common commands cheat sheet What are Linux containers? Our latest Linux articles 1. Resize an image with Krita

The open source application Krita is technically a digital painting application but it happens to be a really great photo editor as well. I use it to load a photo, shrink it down to a reasonable size, and then save it in a web-optimized format.

Three easy steps:

  1. Go to the File menu and select Open to open your image in Krita.

  2. Go to the Image menu and select Scale image to new size. Type in the maximum width or height you want to resize your image to.

  3. Go to the File menu and select Save As and save the image as a WEBP image. Krita is smart and switches to WEBP as long as you use the .webp extension while saving your file (for example, myphoto.webp.)

Image by:

(Seth Kenlon, CC BY-SA 4.0)

Krita is available for Linux, Windows, and macOS.

2. Resize an image with GIMP

The open source GNU Image Manipulation Program (GIMP) is a photo editor, and it can resize images.

Three easy steps:

  1. Go to the File menu and select Open to open your image.

  2. Go to the Image menu and select Scale image. Type in the maximum width or height you want to resize your image to.

  3. Go to the File menu and select Export As and save the image as a WEBP image. The application is smart and uses WEBP as long as you give the .webp extension while saving your file (for example, myphoto.webp.)

Image by:

(Seth Kenlon, CC BY-SA 4.0)

GNU Image Manipulation Program (GIMP) is available for Linux, Windows, and macOS.

3. Resize an image with ImageMagick

The ImageMagick suite is a set of terminal commands that can manipulate images without even opening the files in a user interface. It's a fast and efficient way to modify lots of images all in one go.

One easy step:

$ convert 2022-09-09-PHOTO.JPG -scale 1920x myphoto.webp

In this command, convert is the component of ImageMagick that performs conversion, and -scale is the option that resizes. The 1080^ argument specifies that the converted image must be 1029 pixels wide, and the height (left blank after the x character) is auto-calculated.

ImageMagick is available for Linux, macOS, and Windows.

4. Archive an image

Sometimes you may not want to resize an image, but you still need to reduce the file size (the bytes the file uses up on your hard drive or SD card.) Images from consumer cameras, like those found in phones, are often already highly compressed, which doesn't leave much for a computer to optimize without resizing it. However, professional cameras often shoot in formats that assume you want no or minimal compression, which means that you can reduce the file size of an image without loss of quality with a good archiving utility.

There are several archive utilities out there, and many may already be installed on your computer. For instance, if your computer can create ZIP archives, then you've already got the ZIP compression algorithm available.

Two easy steps:

  1. Open a file manager on your computer and locate the photo you want to compress.

  2. Right-click on the photo, and select Compress (on some operating systems, this may called Archive instead.)

Provided there's enough uncompressed data in your image to allow for compression, the archive version ought to be smaller in file size than the original. You can send the archive over the Internet, and the recipient can un-archive the image with

Image by:

(Seth Kenlon, CC BY-SA 4.0)

7-zip is an excellent archive tool for Linux, Windows, and macOS.

5. Split an image

If you're a Linux user, you can use the split command to cut an image into a few different pieces of a specific file size. Then you can send the pieces to someone, and they can reassemble the file using the cat command.

Assume the file 2022-09-09-PHOTO.JPG is 6.7 MB. You could cut it into four pieces by splitting it at every 2 MB. On your computer:

$ split 2022-09-09-PHOTO.JPG --bytes 2M
$ ls -l --human
[...] 6.7M Sep  7 14:50 2022-09-09-PHOTO.JPG
[...] 2.0M Sep  7 14:54 xaa
[...] 2.0M Sep  7 14:54 xab
[...] 2.0M Sep  7 14:54 xac
[...] 667K Sep  7 14:54 xad

On the recipient's computer:

$ cat xaa xab xac xad > myphoto.jpgSave space

In the eternal struggle between file size and carrier capacity, it's likely we'll always have to make concessions. Using open source tools to save space either through lossy compression, lossless compressed archiving, or through clever work-arounds, is a great way to save space and maximize speed of communication. Sure, a picture is worth a thousand words, but it doesn't have to take up a thousand megabytes!

Resize, archive, and split images to make big files better for the Internet.

Image by:

kreatikar via Pixabay, CC0

Art and design Linux What to read next This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. Register or Login to post a comment.

Wine 7.17 Released As A Small Update For Running Windows Games/Apps On Linux

Phoronix - Sat, 09/10/2022 - 06:11
Wine 7.17 is out as the newest bi-weekly development release but due to the US Labor Day this past week seems to be a driving factor in this update coming in rather small...

AMD Posts "P-State EPP" Driver As New Attempt To Improve Performance-Per-Watt On Linux

Phoronix - Sat, 09/10/2022 - 01:42
Over the past year AMD engineers have been developing the AMD P-State CPU frequency scaling driver as an alternative to the long-used ACPI CPUFreq driver to provide better performance/power efficiency with Zen 2 and newer Ryzen/EPYC processors. Today they have now introduced AMD P-State EPP as they aim to deliver better performance-per-Watt...

VMware: ESXi VM Performance Tanks Up To 70% Due To Intel Retbleed Mitigation

Phoronix - Fri, 09/09/2022 - 23:18
VMware's performance engineering team today announced a performance regression in Linux 5.19 affecting compute performance up to -70%, networking up to -30%, and storage up to -13%. But the unfortunate thing is the heavy hitting regressions are known and a side effect of the Intel Retbleed mitigation for older processors...

openSUSE Leap Micro 5.3 Beta Released For Lightweight, Immutable OS

Phoronix - Fri, 09/09/2022 - 23:00
OpenSUSE has today made available their Leap Micro 5.3 Beta operating system as the lightweight, immutable OS intended for edge / embedded / IoT use-cases...

Open 3D Foundation Welcomes New Members OPPO and Heroic Labs as Community Optimizes Software to Embrace Mobile-First Gaming

The Linux Foundation - Fri, 09/09/2022 - 22:00

Foundation growth driven by organizations seeing new use cases that require modular solutions to build the future of 3D technology

SAN FRANCISCO – September 7, 2022 – As gaming increasingly becomes a mobile-first experience, OPPO and Heroic Labs are joining as Premier and General members, respectively, of the Open 3D Foundation (O3DF). The two companies are working with the community to optimize the open-source Open 3D Engine project for mobile gaming.

OPPO is a global technology company focused on delivering consumer devices, notably mobile phones, and advocating for advancing cloud-native technologies. Heroic Labs is a creator of scalable, social infrastructure for cloud services and app server development. In joining O3DF, OPPO and Heroic Labs will collaborate with other O3DF members to accelerate standardization of 3D graphics development across a diversity of mobile platforms. 

This collaboration will happen inside a newly proposed O3DE (Open 3D Engine) Mobile Device Working Group, through which the O3DE community aims to build portable libraries and interfaces that can be used across a myriad of environments, freely available under the Apache 2.0/MIT license model. We invite all of those interested in shaping the development of 3D graphics standards for mobile devices to review and comment on this open proposal.

“We’re excited to welcome OPPO and Heroic to the community, and we look forward to their contributions in helping advance 3D graphics standards through the O3DE project,” said Royal O’Brien, general manager of Digital Media and Games at the Linux Foundation and executive director of O3DF. “These newest members personify the value of O3DE’s modular architecture, which makes it easier for developers to build 3D solutions that combine the technologies best suited to a diverse set of use cases. Mobile gaming is a great example of how that modular approach fosters extensibility and adaptability from our core technology.” 

“Today, 3D graphics technology has become an essential element of modern society, with application domains ranging from visual effects, gaming and medical imaging to next-generation content like Metaverse,” said Hansen Hong, director of OPPO Software Technology Planning. “We are excited to join the Open 3D Foundation as a Premier member at the early stage of its development. Through our collaboration within the Foundation, we are eager to contribute to the Open 3D Engine with mobile platforms as our focus. Together with the Mobile Device Working Group, we will bring smoother and more user-friendly mobile development experiences to O3DE developers, while generating more efficient yet immersive and realistic rendering applications for mobile users. “

“At the heart of our mission is making game development easy for everyone,” said Mo Firouz, co-founder and chief operations officer at Heroic Labs. “This goal is accelerated by joining O3DF and actively participating in the establishment of 3D graphic development standards that will benefit every level of game creation. Creating this future in community with other O3DF members aligns with our overall commitment to accessibility through open source.”

A Burgeoning Community
Over 25 member companies have joined O3DF since its launch in July 2021. Newest members include OPPO and Heroic Labs, as well as Microsoft, LightSpeed Studios and Epic Games. Other Premier members include Adobe, Amazon Web Services (AWS), Huawei, Intel and Niantic. In May, O3DE announced its latest release, focused on performance, stability and usability enhancements. The O3D Engine community is very active, averaging up to 2 million line changes and 350-450 commits monthly from 60-100 authors across 41 repos.

Attend O3DCon

O3DF will host O3DCon October 17-19 in Austin, Texas. The event will convene a vibrant, diverse community focused on building an unencumbered, first-class, 3D engine poised to revolutionize real-time 3D development across a variety of applications—from game development, metaverse, digital twin and AI, to automotive, healthcare, robotics and more. Early bird pricing expires September 16.

About the Open 3D Engine

Open 3D Engine (O3DE) is the flagship project managed by the Open 3D Foundation (O3DF). The open-source project is a modular, cross-platform 3D engine built to power anything from AAA games to cinema-quality 3D worlds to high-fidelity simulations. The code is hosted on GitHub under the Apache 2.0 license. To learn more, please visit o3de.org and get involved and connect with the community on Discord.com/invite/o3de and GitHub.com/o3de.

About the Open 3D Foundation

Established in July 2021, the mission of the Open 3D Foundation (O3DF) is to make an open-source, fully-featured, high-fidelity, real-time 3D engine for building games and simulations, available to every industry. The Open 3D Foundation is home to the O3D Engine project. To learn more, please visit o3d.foundation.

About the Linux Foundation

Founded in 2000, the Linux Foundation and its projects are supported by more than 2,950 members. The Linux Foundation is the world’s leading home for collaboration on open source software, hardware, standards, and data. Linux Foundation projects are critical to the world’s infrastructure including Linux, Kubernetes, Node.js, ONAP, Hyperledger, RISC-V, and more. The Linux Foundation’s methodology focuses on leveraging best practices and addressing the needs of contributors, users, and solution providers to create sustainable models for open collaboration. For more information, please visit us at linuxfoundation.org

The post Open 3D Foundation Welcomes New Members OPPO and Heroic Labs as Community Optimizes Software to Embrace Mobile-First Gaming appeared first on Linux Foundation.

Pages