Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
@expo/image-utils
Advanced tools
@expo/image-utils is a utility package for image processing tasks such as resizing, compressing, and converting images. It is particularly useful in the context of Expo and React Native applications.
Resize Image
This feature allows you to resize an image to specified dimensions. The code sample demonstrates how to read an image from the file system, resize it to 100x100 pixels, and save the resized image back to the file system.
const { resizeImage } = require('@expo/image-utils');
const fs = require('fs');
async function resize() {
const imageBuffer = fs.readFileSync('path/to/image.jpg');
const resizedImage = await resizeImage(imageBuffer, { width: 100, height: 100 });
fs.writeFileSync('path/to/resized-image.jpg', resizedImage);
}
resize();
Compress Image
This feature allows you to compress an image to reduce its file size. The code sample demonstrates how to read an image from the file system, compress it with a quality setting of 0.8, and save the compressed image back to the file system.
const { compressImage } = require('@expo/image-utils');
const fs = require('fs');
async function compress() {
const imageBuffer = fs.readFileSync('path/to/image.jpg');
const compressedImage = await compressImage(imageBuffer, { quality: 0.8 });
fs.writeFileSync('path/to/compressed-image.jpg', compressedImage);
}
compress();
Convert Image Format
This feature allows you to convert an image from one format to another. The code sample demonstrates how to read a JPEG image from the file system, convert it to PNG format, and save the converted image back to the file system.
const { convertImageFormat } = require('@expo/image-utils');
const fs = require('fs');
async function convert() {
const imageBuffer = fs.readFileSync('path/to/image.jpg');
const convertedImage = await convertImageFormat(imageBuffer, { format: 'png' });
fs.writeFileSync('path/to/converted-image.png', convertedImage);
}
convert();
Sharp is a high-performance image processing library that supports resizing, cropping, compositing, and format conversion. It is known for its speed and efficiency, making it a popular choice for server-side image processing. Compared to @expo/image-utils, Sharp offers more advanced features and better performance but may be more complex to set up and use.
Jimp is a JavaScript image processing library that works in both Node.js and the browser. It supports a wide range of image manipulation tasks, including resizing, cropping, and color adjustments. Jimp is easier to use and more versatile than @expo/image-utils, but it may not be as performant for large-scale image processing tasks.
GraphicsMagick (gm) is a Node.js wrapper for the GraphicsMagick and ImageMagick command-line tools. It provides a wide range of image processing capabilities, including resizing, cropping, and format conversion. While gm offers extensive functionality, it requires the installation of external dependencies, making it more complex to set up compared to @expo/image-utils.
@expo/image-utils
A library for image processing functionality in Expo CLI.
It uses sharp
for image processing if it's available through a global sharp-cli
installation. Otherwise it uses jimp
, a Node library with no native dependencies, and warns the user that they may want to install sharp-cli
for faster image processing.
This package can be configured using the following environment variables.
When truthy, this will force global sharp-cli
resolution methods like isAvailableAsync()
and findSharpInstanceAsync()
to fail. Other processes can use this to fallback on Jimp for image modifications. By default this is falsy (undefined).
findSharpInstanceAsync()
will throw an error if disabled because it shouldn't be invoked if isAvailableAsync()
returns false
.
FAQs
A package used by Expo CLI for processing images
The npm package @expo/image-utils receives a total of 727,848 weekly downloads. As such, @expo/image-utils popularity was classified as popular.
We found that @expo/image-utils demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 27 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.