HivePaaS
An open-source, self-hosted PaaS on Docker Swarm. Deploy apps, databases and functions from one VPS to a whole cluster, with SSL, backups and autoscaling built in.
Dart Image Library for opening, manipulating, and saving various different image file formats.
Developer toolsDart · CSSGitHub @brendan-duncanSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Installable projects can be verified without a deployment domain. Use GitHub sign-in for a personal repository, or the repository verification file above for an organization repository.
Ask about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗The Dart Image Library loads, saves and manipulates images in a variety of image file formats.
It's written in pure Dart with no native dependencies, so it works everywhere Dart does: command-line apps, servers, Flutter on every platform, and the web.
Features include:
Read/Write
Read Only
Write Only
dart pub add image
import 'package:image/image.dart' as img;
Create an image, set pixel values, and save it as a PNG:
import 'dart:io';
import 'package:image/image.dart' as img;
Future<void> main() async {
// Create a 256x256 8-bit (default) RGB (default) image.
final image = img.Image(width: 256, height: 256);
// Iterate over its pixels.
for (final pixel in image) {
pixel
// Set the red channel to the x position, creating a gradient.
..r = pixel.x
// Set the green channel to the y position.
..g = pixel.y;
}
// Encode the image to the PNG format.
final png = img.encodePng(image);
// Write the PNG data to a file.
await File('image.png').writeAsBytes(png);
}
Load a JPEG, make a thumbnail, and save it:
import 'dart:io';
import 'package:image/image.dart' as img;
Future<void> main() async {
final bytes = await File('photo.jpg').readAsBytes();
// Decode the JPEG. This returns null, or throws an ImageException, if the
// data isn't a valid JPEG.
final image = img.decodeJpg(bytes);
if (image == null) {
return;
}
// Resize to 120 pixels wide, keeping the aspect ratio. The EXIF orientation
// of the photo is applied.
final thumbnail = img.copyResize(image, width: 120);
// Encode as a JPEG and save it.
await File('thumbnail.jpg').writeAsBytes(img.encodeJpg(thumbnail, quality: 85));
}
Do the same work in a separate isolate with the Command API, so it doesn't block the main isolate:
import 'package:image/image.dart' as img;
Future<void> main(List<String> args) async {
final path = args.isNotEmpty ? args[0] : 'test.png';
final cmd = img.Command()
// Decode the image file at the given path.
..decodeImageFile(path)
// Resize the image to a width of 64 pixels, keeping the aspect ratio.
..copyResize(width: 64)
// Write the image to a PNG file (the format comes from the file extension).
..writeToFile('thumbnail.png');
// On platforms that support isolates, execute the commands on a separate
// isolate. Otherwise (on the web), they run on the main thread.
await cmd.executeThread();
}
See the tutorial for more.