pixelbin 1.0.5 pixelbin: ^1.0.5 copied to clipboard
Real-time image transformations with automatic optimization, image URL and storage for efficient image organization
Pixelbin #
Pixelbin Dart library helps you integrate Pixelbin with your Dart/Flutter Application.
Usage #
Install using Pub Package Manager #
Run this command:
- With Dart:
dart pub add pixelbin
- With Flutter:
flutter pub add pixelbin
OR
- This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):
dependencies:
pixelbin: ^latest_release_version
Creating Image from URL or Cloud details #
import 'package:pixelbin/pixelbin_dart_sdk.dart';
final PixelBinImage? imageFromUrl = PixelBin.shared.imageFromUrl(
"https://cdn.pixelbin.io/v2/dummy-cloudname/erase.bg(shadow:false,r:true,i:general)~af.remove()~t.blur(s:0.3,dpr:1.0)/__playground/playground-default.jpeg");
debugPrint(imageFromUrl?.encoded);
// Create Image url from cloud, zone and other details
final PixelBinImage imageFromDetails = pixelBin.image(
imagePath: imageFromUrl.imagePath, cloud: imageFromUrl.cloudName, transformations: imageFromUrl.transformations, version: imageFromUrl.version);
debugPrint(imageFromDetails.encoded);
Applying Transformations and Getting Transformations #
import 'package:pixelbin/pixelbin_dart_sdk.dart';
// Create Image url from cloud, zone and imagePath on cloud (Not local path)
final image = PixelBin.shared.image(imagePath: "example/logo/apple.jpg", cloud: "apple_cloud", zone: "south_asia");
debugPrint(imageFromDetails.encoded); // https://cdn.pixelbin.io/v2/apple_cloud/south_asia/original/example/logo/apple.jpg
final resizeTransformation = Transformation.tResize(height: 200, width: 200); // Creating Resize Transformation
image.addTransformations([eraseTransformation, resizeTransformation]); // Applying multiple transformations with list(keep passing all transformations in list)
// OR
image.addTransformation(resizeTransformation); // Applying transformations one by one
final outputUrl = image.encoded; // https://cdn.pixelbin.io/v2/apple_cloud/south_asia/erase.bg()~t.resize(h:100,w:100)/example/logo/apple.jpg
debugPrint(outputUrl);
Uploading Image and getting url object #
// Signed Url and Field can be generated via using Backed SDK for pixelbin or API to generate signed url for upload
// Assume imagePath: "example/logo/apple.jpg", cloud: "apple_cloud", zone: "south_asia" & generate details
final signUrl = "SIGNED_URL";
final fields = {// Key: Value}; // META_DATA in value
final signedDetails = SignedDetails(url: signUrl, fields: fields)
// file is local picked file, other fields chunkSize: Int = 1024, concurrency: Int = 1
try {
final signedDetails = SignedDetails(url: signUrl,fields:fields);
final PixelBinImage? uploadResponse = await PixelBin.shared
.upload(file: file, signedDetails: signedDetails);
debugPrint("Response:=> ${uploadResponse?.encoded}");
} catch (e) {
debugPrint("Error:=> ${e.toString()}");
}
Parameter | Type | Description |
---|---|---|
file (File) | File | File to upload to Pixelbin |
signedDetails (SignedDetails) | Object | Signed details generated with the Pixelbin Backend SDK |
chunkSize (Int) | Integer | Size of chunks to be uploaded in KB (default value is 1024) |
concurrency (Int) | Integer | Number of chunks to be uploaded in parallel API calls |
- Resolves with Image object on success.
- Rejects with error on failure.
List of Supported Transformations #
DetectBackgroundType #
1. dbtDetect()
Classifies the background of a product as plain, clean or busy
final t = Transformation.dbtDetect(
);
Basic #
1. tResize(height, width, fit, background, position, algorithm, dpr)
Basic Transformations
Parameter | Type | Default |
---|---|---|
height | integer | N/A |
width | integer | N/A |
fit | enum: cover , contain , fill , inside , outside |
cover |
background | color | 000000 |
position | enum: top , bottom , left , right , right_top , right_bottom , left_top , left_bottom , center |
center |
algorithm | enum: nearest , cubic , mitchell , lanczos2 , lanczos3 |
lanczos3 |
dpr | float | 1 |
final t = Transformation.tResize(
height: "",
width: "",
fit: "cover",
background: "000000",
position: "center",
algorithm: "lanczos3",
dpr: "1"
);
2. tCompress(quality)
Basic Transformations
Parameter | Type | Default |
---|---|---|
quality | integer | 80 |
final t = Transformation.tCompress(
quality: "80"
);
3. tExtend(top, left, bottom, right, background, borderType, dpr)
Basic Transformations
Parameter | Type | Default |
---|---|---|
top | integer | 10 |
left | integer | 10 |
bottom | integer | 10 |
right | integer | 10 |
background | color | 000000 |
borderType | enum: constant , replicate , reflect , wrap |
constant |
dpr | float | 1 |
final t = Transformation.tExtend(
top: "10",
left: "10",
bottom: "10",
right: "10",
background: "000000",
borderType: "constant",
dpr: "1"
);
4. tExtract(top, left, height, width, boundingBox)
Basic Transformations
Parameter | Type | Default |
---|---|---|
top | integer | 10 |
left | integer | 10 |
height | integer | 50 |
width | integer | 20 |
boundingBox | bbox | N/A |
final t = Transformation.tExtract(
top: "10",
left: "10",
height: "50",
width: "20",
boundingBox: ""
);
5. tTrim(threshold)
Basic Transformations
Parameter | Type | Default |
---|---|---|
threshold | integer | 10 |
final t = Transformation.tTrim(
threshold: "10"
);
6. tRotate(angle, background)
Basic Transformations
Parameter | Type | Default |
---|---|---|
angle | integer | N/A |
background | color | 000000 |
final t = Transformation.tRotate(
angle: "",
background: "000000"
);
7. tFlip()
Basic Transformations
final t = Transformation.tFlip(
);
8. tFlop()
Basic Transformations
final t = Transformation.tFlop(
);
9. tSharpen(sigma)
Basic Transformations
Parameter | Type | Default |
---|---|---|
sigma | float | 1.5 |
final t = Transformation.tSharpen(
sigma: "1.5"
);
10. tMedian(size)
Basic Transformations
Parameter | Type | Default |
---|---|---|
size | integer | 3 |
final t = Transformation.tMedian(
size: "3"
);
11. tBlur(sigma, dpr)
Basic Transformations
Parameter | Type | Default |
---|---|---|
sigma | float | 0.3 |
dpr | float | 1 |
final t = Transformation.tBlur(
sigma: "0.3",
dpr: "1"
);
12. tFlatten(background)
Basic Transformations
Parameter | Type | Default |
---|---|---|
background | color | 000000 |
final t = Transformation.tFlatten(
background: "000000"
);
13. tNegate()
Basic Transformations
final t = Transformation.tNegate(
);
14. tNormalise()
Basic Transformations
final t = Transformation.tNormalise(
);
15. tLinear(a, b)
Basic Transformations
Parameter | Type | Default |
---|---|---|
a | integer | 1 |
b | integer | N/A |
final t = Transformation.tLinear(
a: "1",
b: ""
);
16. tModulate(brightness, saturation, hue)
Basic Transformations
Parameter | Type | Default |
---|---|---|
brightness | float | 1 |
saturation | float | 1 |
hue | integer | 90 |
final t = Transformation.tModulate(
brightness: "1",
saturation: "1",
hue: "90"
);
17. tGrey()
Basic Transformations
final t = Transformation.tGrey(
);
18. tTint(color)
Basic Transformations
Parameter | Type | Default |
---|---|---|
color | color | 000000 |
final t = Transformation.tTint(
color: "000000"
);
19. tToformat(format, quality)
Basic Transformations
Parameter | Type | Default |
---|---|---|
format | enum: jpeg , png , webp , tiff , avif , bmp , heif |
jpeg |
quality | enum: 100 , 95 , 90 , 85 , 80 , 75 , 70 , 60 , 50 , 40 , 30 , 20 , 10 , best , good , eco , low |
75 |
final t = Transformation.tToformat(
format: "jpeg",
quality: "75"
);
20. tDensity(density)
Basic Transformations
Parameter | Type | Default |
---|---|---|
density | integer | 300 |
final t = Transformation.tDensity(
density: "300"
);
21. tMerge(mode, image, transformation, background, height, width, top, left, gravity, blend, tile, listOfBboxes, listOfPolygons)
Basic Transformations
Parameter | Type | Default |
---|---|---|
mode | enum: overlay , underlay , wrap |
overlay |
image | file | N/A |
transformation | custom | N/A |
background | color | 00000000 |
height | integer | N/A |
width | integer | N/A |
top | integer | N/A |
left | integer | N/A |
gravity | enum: northwest , north , northeast , east , center , west , southwest , south , southeast , custom |
center |
blend | enum: over , in , out , atop , dest , dest-over , dest-in , dest-out , dest-atop , xor , add , saturate , multiply , screen , overlay , darken , lighten , colour-dodge , color-dodge , colour-burn , color-burn , hard-light , soft-light , difference , exclusion |
over |
tile | boolean | N/A |
listOfBboxes | bboxList | N/A |
listOfPolygons | polygonList | N/A |
final t = Transformation.tMerge(
mode: "overlay",
image: "",
transformation: "",
background: "00000000",
height: "",
width: "",
top: "",
left: "",
gravity: "center",
blend: "over",
tile: "",
listOfBboxes: "",
listOfPolygons: ""
);
Artifact #
1. afRemove()
Artifact Removal Plugin
final t = Transformation.afRemove(
);
AWSRekognitionPlugin #
1. awsrekDetectlabels(maximumLabels, minimumConfidence)
Detect objects and text in images
Parameter | Type | Default |
---|---|---|
maximumLabels | integer | 5 |
minimumConfidence | integer | 55 |
final t = Transformation.awsrekDetectlabels(
maximumLabels: "5",
minimumConfidence: "55"
);
2. awsrekModeration(minimumConfidence)
Detect objects and text in images
Parameter | Type | Default |
---|---|---|
minimumConfidence | integer | 55 |
final t = Transformation.awsrekModeration(
minimumConfidence: "55"
);
BackgroundGenerator #
1. generateBg(backgroundPrompt, focus, negativePrompt, seed)
AI Background Generator
Parameter | Type | Default |
---|---|---|
backgroundPrompt | custom | YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr |
focus | enum: Product , Background |
Product |
negativePrompt | custom | N/A |
seed | integer | 123 |
final t = Transformation.generateBg(
backgroundPrompt: "YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr",
focus: "Product",
negativePrompt: "",
seed: "123"
);
ImageExtender #
1. bgExtend(boundingBox, prompt, negativePrompt, strength, guidanceScale, numberOfInferenceSteps, colorAdjust, seed)
AI Image Extender
Parameter | Type | Default |
---|---|---|
boundingBox | bbox | N/A |
prompt | custom | N/A |
negativePrompt | custom | N/A |
strength | float | 0.999 |
guidanceScale | integer | 8 |
numberOfInferenceSteps | integer | 10 |
colorAdjust | boolean | N/A |
seed | integer | 123 |
final t = Transformation.bgExtend(
boundingBox: "",
prompt: "",
negativePrompt: "",
strength: "0.999",
guidanceScale: "8",
numberOfInferenceSteps: "10",
colorAdjust: "",
seed: "123"
);
VariationGenerator #
1. vgGenerate(generateVariationPrompt, noOfVariations, seed, autoscale)
AI Variation Generator
Parameter | Type | Default |
---|---|---|
generateVariationPrompt | custom | N/A |
noOfVariations | integer | 1 |
seed | integer | N/A |
autoscale | boolean | true |
final t = Transformation.vgGenerate(
generateVariationPrompt: "",
noOfVariations: "1",
seed: "",
autoscale: "true"
);
EraseBG #
1. eraseBg(industryType, addShadow, refine)
EraseBG Background Removal Module
Parameter | Type | Default |
---|---|---|
industryType | enum: general , ecommerce , car , human , object |
general |
addShadow | boolean | N/A |
refine | boolean | true |
final t = Transformation.eraseBg(
industryType: "general",
addShadow: "",
refine: "true"
);
GoogleVisionPlugin #
1. googlevisDetectlabels(maximumLabels)
Detect content and text in images
Parameter | Type | Default |
---|---|---|
maximumLabels | integer | 5 |
final t = Transformation.googlevisDetectlabels(
maximumLabels: "5"
);
ImageCentering #
1. imcDetect(distancePercentage)
Image Centering Module
Parameter | Type | Default |
---|---|---|
distancePercentage | integer | 10 |
final t = Transformation.imcDetect(
distancePercentage: "10"
);
IntelligentCrop #
1. icCrop(requiredWidth, requiredHeight, paddingPercentage, maintainOriginalAspect, aspectRatio, gravityTowards, preferredDirection, objectType)
Intelligent Crop Plugin
Parameter | Type | Default |
---|---|---|
requiredWidth | integer | N/A |
requiredHeight | integer | N/A |
paddingPercentage | integer | N/A |
maintainOriginalAspect | boolean | N/A |
aspectRatio | string | N/A |
gravityTowards | enum: object , foreground , face , none |
none |
preferredDirection | enum: north_west , north , north_east , west , center , east , south_west , south , south_east |
center |
objectType | enum: airplane , apple , backpack , banana , baseball_bat , baseball_glove , bear , bed , bench , bicycle , bird , boat , book , bottle , bowl , broccoli , bus , cake , car , carrot , cat , cell_phone , chair , clock , couch , cow , cup , dining_table , dog , donut , elephant , fire_hydrant , fork , frisbee , giraffe , hair_drier , handbag , horse , hot_dog , keyboard , kite , knife , laptop , microwave , motorcycle , mouse , orange , oven , parking_meter , person , pizza , potted_plant , refrigerator , remote , sandwich , scissors , sheep , sink , skateboard , skis , snowboard , spoon , sports_ball , stop_sign , suitcase , surfboard , teddy_bear , tennis_racket , tie , toaster , toilet , toothbrush , traffic_light , train , truck , tv , umbrella , vase , wine_glass , zebra |
person |
final t = Transformation.icCrop(
requiredWidth: "",
requiredHeight: "",
paddingPercentage: "",
maintainOriginalAspect: "",
aspectRatio: "",
gravityTowards: "none",
preferredDirection: "center",
objectType: "person"
);
IntelligentMasking #
1. imMask(replacementImage, detector, maskType)
Intelligent Masking
Parameter | Type | Default |
---|---|---|
replacementImage | file | N/A |
detector | enum: face , text , number_plate |
number_plate |
maskType | enum: fill_black , pixelate , blur |
fill_black |
final t = Transformation.imMask(
replacementImage: "",
detector: "number_plate",
maskType: "fill_black"
);
ObjectCounter #
1. ocDetect()
Classifies whether objects in the image are single or multiple
final t = Transformation.ocDetect(
);
NSFWDetection #
1. nsfwDetect(minimumConfidence)
Detect NSFW content in images
Parameter | Type | Default |
---|---|---|
minimumConfidence | float | 0.5 |
final t = Transformation.nsfwDetect(
minimumConfidence: "0.5"
);
NumberPlateDetection #
1. numplateDetect()
Number Plate Detection Plugin
final t = Transformation.numplateDetect(
);
ObjectDetection #
1. odDetect()
Detect bounding boxes of objects in the image
final t = Transformation.odDetect(
);
CheckObjectSize #
1. cosDetect(objectThresholdPercent)
Calculates the percentage of the main object area relative to image dimensions.
Parameter | Type | Default |
---|---|---|
objectThresholdPercent | integer | 50 |
final t = Transformation.cosDetect(
objectThresholdPercent: "50"
);
TextDetectionandRecognition #
1. ocrExtract(detectOnly)
OCR Module
Parameter | Type | Default |
---|---|---|
detectOnly | boolean | N/A |
final t = Transformation.ocrExtract(
detectOnly: ""
);
PdfWatermarkRemoval #
1. pwrRemove()
PDF Watermark Removal Plugin
final t = Transformation.pwrRemove(
);
ProductTagging #
1. prTag()
AI Product Tagging
final t = Transformation.prTag(
);
CheckProductVisibility #
1. cpvDetect()
Classifies whether the product in the image is completely visible or not
final t = Transformation.cpvDetect(
);
QRCode #
1. qrGenerate(width, height, image, margin, qRTypeNumber, qrErrorCorrectionLevel, imageSize, imageMargin, dotsColor, dotsType, dotsBgColor, cornerSquareColor, cornerSquareType, cornerDotsColor, cornerDotsType)
QRCode Plugin
Parameter | Type | Default |
---|---|---|
width | integer | 300 |
height | integer | 300 |
image | custom | N/A |
margin | integer | N/A |
qRTypeNumber | integer | N/A |
qrErrorCorrectionLevel | enum: L , M , Q , H |
Q |
imageSize | float | 0.4 |
imageMargin | integer | N/A |
dotsColor | color | 000000 |
dotsType | enum: rounded , dots , classy , classy-rounded , square , extra-rounded |
square |
dotsBgColor | color | ffffff |
cornerSquareColor | color | 000000 |
cornerSquareType | enum: dot , square , extra-rounded |
square |
cornerDotsColor | color | 000000 |
cornerDotsType | enum: dot , square |
dot |
final t = Transformation.qrGenerate(
width: "300",
height: "300",
image: "",
margin: "",
qRTypeNumber: "",
qrErrorCorrectionLevel: "Q",
imageSize: "0.4",
imageMargin: "",
dotsColor: "000000",
dotsType: "square",
dotsBgColor: "ffffff",
cornerSquareColor: "000000",
cornerSquareType: "square",
cornerDotsColor: "000000",
cornerDotsType: "dot"
);
2. qrScan()
QRCode Plugin
final t = Transformation.qrScan(
);
RemoveBG #
1. removeBg()
Remove background from any image
final t = Transformation.removeBg(
);
SoftShadowGenerator #
1. shadowGen(backgroundImage, backgroundColor, shadowAngle, shadowIntensity)
AI Soft Shadow Generator
Parameter | Type | Default |
---|---|---|
backgroundImage | file | N/A |
backgroundColor | color | ffffff |
shadowAngle | float | 120 |
shadowIntensity | float | 0.5 |
final t = Transformation.shadowGen(
backgroundImage: "",
backgroundColor: "ffffff",
shadowAngle: "120",
shadowIntensity: "0.5"
);
SuperResolution #
1. srUpscale(type, enhanceFace, model, enhanceQuality)
Super Resolution Module
Parameter | Type | Default |
---|---|---|
type | enum: 2x , 4x , 8x |
2x |
enhanceFace | boolean | N/A |
model | enum: Picasso , Flash |
Picasso |
enhanceQuality | boolean | N/A |
final t = Transformation.srUpscale(
type: "2x",
enhanceFace: "",
model: "Picasso",
enhanceQuality: ""
);
VertexAI #
1. vertexaiGeneratebg(backgroundPrompt, negativePrompt, seed, guidanceScale)
Vertex AI based transformations
Parameter | Type | Default |
---|---|---|
backgroundPrompt | custom | YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr |
negativePrompt | custom | N/A |
seed | integer | 22 |
guidanceScale | integer | 60 |
final t = Transformation.vertexaiGeneratebg(
backgroundPrompt: "YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr",
negativePrompt: "",
seed: "22",
guidanceScale: "60"
);
2. vertexaiRemovebg()
Vertex AI based transformations
final t = Transformation.vertexaiRemovebg(
);
3. vertexaiUpscale(type)
Vertex AI based transformations
Parameter | Type | Default |
---|---|---|
type | enum: x2 , x4 |
x2 |
final t = Transformation.vertexaiUpscale(
type: "x2"
);
VideoWatermarkRemoval #
1. wmvRemove()
Video Watermark Removal Plugin
final t = Transformation.wmvRemove(
);
VideoUpscalerPlugin #
1. vsrUpscale()
Video Upscaler Plugin
final t = Transformation.vsrUpscale(
);
ViewDetection #
1. vdDetect()
Classifies wear type and view type of products in the image
final t = Transformation.vdDetect(
);
WatermarkRemoval #
1. wmRemove(removeText, removeLogo, box1, box2, box3, box4, box5)
Watermark Removal Plugin
Parameter | Type | Default |
---|---|---|
removeText | boolean | N/A |
removeLogo | boolean | N/A |
box1 | string | 0_0_100_100 |
box2 | string | 0_0_0_0 |
box3 | string | 0_0_0_0 |
box4 | string | 0_0_0_0 |
box5 | string | 0_0_0_0 |
final t = Transformation.wmRemove(
removeText: "",
removeLogo: "",
box1: "0_0_100_100",
box2: "0_0_0_0",
box3: "0_0_0_0",
box4: "0_0_0_0",
box5: "0_0_0_0"
);
WatermarkDetection #
1. wmcDetect(detectText)
Watermark Detection Plugin
Parameter | Type | Default |
---|---|---|
detectText | boolean | N/A |
final t = Transformation.wmcDetect(
detectText: ""
);