6 releases (3 breaking)
0.4.0 | Nov 27, 2023 |
---|---|
0.3.0 | Nov 18, 2023 |
0.2.2 | Oct 23, 2023 |
0.1.0 | Jun 3, 2023 |
#375 in Web programming
453 downloads per month
110KB
2.5K
SLoC
cloudinary
At the moment, there is only half-backed upload and transformation functionality, but if you need more, please let me know.
Upload an image
use cloudinary::upload::{UploadOptions, Source, Upload};
let options = UploadOptions::new().set_public_id("file.jpg".to_string());
let upload = Upload::new("api_key".to_string(), "cloud_name".to_string(), "api_secret".to_string() );
let result = upload.image(Source::Path("./image.jpg".into()), &options);
Transform an image
Currently supported transformations:
- Resize
- Crop
- Pad
Resizing an image:
use cloudinary::transformation::{
Transformations::Resize, resize_mode::ResizeMode::ScaleByWidth, Image, aspect_ratio::AspectRatio
};
let image = Image::new("test".into(), "path/name.png".into())
.add_transformation(Resize(ScaleByWidth{ width:100, ar: None, liquid:None}));
assert_eq!(
image.to_string(),
"https://res.cloudinary.com/test/image/upload/c_scale,w_100/path/name.png"
);
Cropping an image:
use cloudinary::transformation::{
Transformations::Crop, crop_mode::CropMode::FillByWidth, Image, aspect_ratio::AspectRatio
};
let image = Image::new("test".into(), "path/name.png".into())
.add_transformation(Crop(FillByWidth{ width:100, ar: None, gravity: None}));
assert_eq!(
image.to_string(),
"https://res.cloudinary.com/test/image/upload/c_fill,w_100/path/name.png"
);
Padding an image:
use cloudinary::transformation::{
Transformations::Pad, pad_mode::PadMode::PadByWidth, Image, aspect_ratio::AspectRatio
};
let image = Image::new("test".into(), "path/name.png".into())
.add_transformation(Pad(PadByWidth{ width:100, ar: None, background: None, gravity: None}));
assert_eq!(
image.to_string(),
"https://res.cloudinary.com/test/image/upload/c_pad,w_100/path/name.png"
);
Get Image from URL
Unofficial api. This is not supported by Cloudinary, and can break at any time. Officially you should use public_id that you get from upload.
use cloudinary::transformation::Image;
use url::Url;
let image = Image::try_from(
Url::parse("https://res.cloudinary.com/test/image/upload/path/name.png").unwrap()
).unwrap();
assert_eq!(image.to_string(), "https://res.cloudinary.com/test/image/upload/path/name.png");
Get a list of all assets with a given tag
use cloudinary::tags::get_tags;
let tags = get_tags("cloud_name".into(), "tag_name".into()).await;
Minimum supported Rust version
The minimum supported Rust version for this crate is 1.65
License: MIT OR Apache-2.0
Dependencies
~8–22MB
~329K SLoC