Pixelbin Dart library helps you integrate Pixelbin with your Dart/Flutter Application.
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
import 'package:pixelbin/pixelbin_dart_sdk.dart';
final PixelBinImage? imageFromUrl = PixelBin.shared.imageFromUrl(
"https://cdn.pixelbin.io/v2/dummy-cloudname/original/__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);
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);
// 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.
Classifies the background of a product as plain, clean or busy
final t = Transformation.dbtDetect(
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
height | integer | 0 |
width | integer | 0 |
fit | enumcover , contain , fill , inside , outside |
TFit.cover |
background | color | "000000" |
position | enumtop , bottom , left , right , right_top , right_bottom , left_top , left_bottom , center |
TPosition.center |
algorithm | enumnearest , cubic , mitchell , lanczos2 , lanczos3 |
TAlgorithm.lanczos3 |
dpr | float | 1 |
final t = Transformation.tResize(
height: 0,
width: 0,
fit: TFit.cover,
background: "000000",
position: TPosition.center,
algorithm: TAlgorithm.lanczos3,
dpr: 1
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
quality | integer | 80 |
final t = Transformation.tCompress(
quality: 80
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
top | integer | 10 |
left | integer | 10 |
bottom | integer | 10 |
right | integer | 10 |
background | color | "000000" |
borderType | enumconstant , replicate , reflect , wrap |
TBorderType.constant |
dpr | float | 1 |
final t = Transformation.tExtend(
top: 10,
left: 10,
bottom: 10,
right: 10,
background: "000000",
borderType: TBorderType.constant,
dpr: 1
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
top | integer | 10 |
left | integer | 10 |
height | integer | 50 |
width | integer | 20 |
boundingBox | bbox | null |
final t = Transformation.tExtract(
top: 10,
left: 10,
height: 50,
width: 20,
boundingBox: null
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
threshold | integer | 10 |
final t = Transformation.tTrim(
threshold: 10
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
angle | integer | 0 |
background | color | "000000" |
final t = Transformation.tRotate(
angle: 0,
background: "000000"
);
Basic Transformations
final t = Transformation.tFlip(
);
Basic Transformations
final t = Transformation.tFlop(
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
sigma | float | 1.5 |
final t = Transformation.tSharpen(
sigma: 1.5
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
size | integer | 3 |
final t = Transformation.tMedian(
size: 3
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
sigma | float | 0.3 |
dpr | float | 1 |
final t = Transformation.tBlur(
sigma: 0.3,
dpr: 1
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
background | color | "000000" |
final t = Transformation.tFlatten(
background: "000000"
);
Basic Transformations
final t = Transformation.tNegate(
);
Basic Transformations
final t = Transformation.tNormalise(
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
a | integer | 1 |
b | integer | 0 |
final t = Transformation.tLinear(
a: 1,
b: 0
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
brightness | float | 1 |
saturation | float | 1 |
hue | integer | 90 |
final t = Transformation.tModulate(
brightness: 1,
saturation: 1,
hue: 90
);
Basic Transformations
final t = Transformation.tGrey(
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
color | color | "000000" |
final t = Transformation.tTint(
color: "000000"
);
Basic Transformations
Parameter | Type | Default |
---|---|---|
format | enumjpeg , png , webp , tiff , avif , bmp , heif |
TFormat.jpeg |
quality | enum100 , 95 , 90 , 85 , 80 , 75 , 70 , 60 , 50 , 40 , 30 , 20 , 10 , best , good , eco , low |
TQuality.p75 |
final t = Transformation.tToformat(
format: TFormat.jpeg,
quality: TQuality.p75
);
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 | enumoverlay , underlay , wrap |
TMode.overlay |
image | file | "" |
transformation | custom | "" |
background | color | "00000000" |
height | integer | 0 |
width | integer | 0 |
top | integer | 0 |
left | integer | 0 |
gravity | enumnorthwest , north , northeast , east , center , west , southwest , south , southeast , custom |
TGravity.center |
blend | enumover , 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 |
TBlend.over |
tile | boolean | false |
listOfBboxes | bboxList | null |
listOfPolygons | polygonList | null |
final t = Transformation.tMerge(
mode: TMode.overlay,
image: "",
transformation: "",
background: "00000000",
height: 0,
width: 0,
top: 0,
left: 0,
gravity: TGravity.center,
blend: TBlend.over,
tile: false,
listOfBboxes: null,
listOfPolygons: null
);
Artifact Removal Plugin
final t = Transformation.afRemove(
);
Detect objects and text in images
Parameter | Type | Default |
---|---|---|
maximumLabels | integer | 5 |
minimumConfidence | integer | 55 |
final t = Transformation.awsrekDetectlabels(
maximumLabels: 5,
minimumConfidence: 55
);
Detect objects and text in images
Parameter | Type | Default |
---|---|---|
minimumConfidence | integer | 55 |
final t = Transformation.awsrekModeration(
minimumConfidence: 55
);
AI Background Generator
Parameter | Type | Default |
---|---|---|
backgroundPrompt | custom | "YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr" |
focus | enumProduct , Background |
GenerateFocus.product |
negativePrompt | custom | "" |
seed | integer | 123 |
final t = Transformation.generateBg(
backgroundPrompt: "YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr",
focus: GenerateFocus.product,
negativePrompt: "",
seed: 123
);
1. bgExtend(boundingBox, prompt, negativePrompt, strength, guidanceScale, numberOfInferenceSteps, colorAdjust, seed)
AI Image Extender
Parameter | Type | Default |
---|---|---|
boundingBox | bbox | null |
prompt | custom | "" |
negativePrompt | custom | "" |
strength | float | 0.999 |
guidanceScale | integer | 8 |
numberOfInferenceSteps | integer | 10 |
colorAdjust | boolean | false |
seed | integer | 123 |
final t = Transformation.bgExtend(
boundingBox: null,
prompt: "",
negativePrompt: "",
strength: 0.999,
guidanceScale: 8,
numberOfInferenceSteps: 10,
colorAdjust: false,
seed: 123
);
AI Variation Generator
Parameter | Type | Default |
---|---|---|
generateVariationPrompt | custom | "" |
noOfVariations | integer | 1 |
seed | integer | 0 |
autoscale | boolean | true |
final t = Transformation.vgGenerate(
generateVariationPrompt: "",
noOfVariations: 1,
seed: 0,
autoscale: true
);
EraseBG Background Removal Module
Parameter | Type | Default |
---|---|---|
industryType | enumgeneral , ecommerce , car , human , object |
EraseIndustryType.general |
addShadow | boolean | false |
refine | boolean | true |
final t = Transformation.eraseBg(
industryType: EraseIndustryType.general,
addShadow: false,
refine: true
);
Detect content and text in images
Parameter | Type | Default |
---|---|---|
maximumLabels | integer | 5 |
final t = Transformation.googlevisDetectlabels(
maximumLabels: 5
);
Image Centering Module
Parameter | Type | Default |
---|---|---|
distancePercentage | integer | 10 |
final t = Transformation.imcDetect(
distancePercentage: 10
);
1. icCrop(requiredWidth, requiredHeight, paddingPercentage, maintainOriginalAspect, aspectRatio, gravityTowards, preferredDirection, objectType)
Intelligent Crop Plugin
Parameter | Type | Default |
---|---|---|
requiredWidth | integer | 0 |
requiredHeight | integer | 0 |
paddingPercentage | integer | 0 |
maintainOriginalAspect | boolean | false |
aspectRatio | string | "" |
gravityTowards | enumobject , foreground , face , none |
IcGravitytowards.none |
preferredDirection | enumnorth_west , north , north_east , west , center , east , south_west , south , south_east |
IcPreferreddirection.center |
objectType | enumairplane , 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 |
IcObjectType.person |
final t = Transformation.icCrop(
requiredWidth: 0,
requiredHeight: 0,
paddingPercentage: 0,
maintainOriginalAspect: false,
aspectRatio: "",
gravityTowards: IcGravitytowards.none,
preferredDirection: IcPreferreddirection.center,
objectType: IcObjectType.person
);
Intelligent Masking
Parameter | Type | Default |
---|---|---|
replacementImage | file | "" |
detector | enumface , text , number_plate |
ImDetector.numberPlate |
maskType | enumfill_black , pixelate , blur |
ImMaskType.fillBlack |
final t = Transformation.imMask(
replacementImage: "",
detector: ImDetector.numberPlate,
maskType: ImMaskType.fillBlack
);
Classifies whether objects in the image are single or multiple
final t = Transformation.ocDetect(
);
Detect NSFW content in images
Parameter | Type | Default |
---|---|---|
minimumConfidence | float | 0.5 |
final t = Transformation.nsfwDetect(
minimumConfidence: 0.5
);
Number Plate Detection Plugin
final t = Transformation.numplateDetect(
);
Detect bounding boxes of objects in the image
final t = Transformation.odDetect(
);
Calculates the percentage of the main object area relative to image dimensions.
Parameter | Type | Default |
---|---|---|
objectThresholdPercent | integer | 50 |
final t = Transformation.cosDetect(
objectThresholdPercent: 50
);
OCR Module
Parameter | Type | Default |
---|---|---|
detectOnly | boolean | false |
final t = Transformation.ocrExtract(
detectOnly: false
);
PDF Watermark Removal Plugin
final t = Transformation.pwrRemove(
);
AI Product Tagging
final t = Transformation.prTag(
);
Classifies whether the product in the image is completely visible or not
final t = Transformation.cpvDetect(
);
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 | "" |
margin | integer | 0 |
qRTypeNumber | integer | 0 |
qrErrorCorrectionLevel | enumL , M , Q , H |
QrQrerrorcorrectionlevel.q |
imageSize | float | 0.4 |
imageMargin | integer | 0 |
dotsColor | color | "000000" |
dotsType | enumrounded , dots , classy , classy-rounded , square , extra-rounded |
QrDotsType.square |
dotsBgColor | color | "ffffff" |
cornerSquareColor | color | "000000" |
cornerSquareType | enumdot , square , extra-rounded |
QrCornersquareType.square |
cornerDotsColor | color | "000000" |
cornerDotsType | enumdot , square |
QrCornerdotsType.dot |
final t = Transformation.qrGenerate(
width: 300,
height: 300,
image: "",
margin: 0,
qRTypeNumber: 0,
qrErrorCorrectionLevel: QrQrerrorcorrectionlevel.q,
imageSize: 0.4,
imageMargin: 0,
dotsColor: "000000",
dotsType: QrDotsType.square,
dotsBgColor: "ffffff",
cornerSquareColor: "000000",
cornerSquareType: QrCornersquareType.square,
cornerDotsColor: "000000",
cornerDotsType: QrCornerdotsType.dot
);
QRCode Plugin
final t = Transformation.qrScan(
);
Remove background from any image
final t = Transformation.removeBg(
);
AI Soft Shadow Generator
Parameter | Type | Default |
---|---|---|
backgroundImage | file | null |
backgroundColor | color | "ffffff" |
shadowAngle | float | 120 |
shadowIntensity | float | 0.5 |
final t = Transformation.shadowGen(
backgroundImage: null,
backgroundColor: "ffffff",
shadowAngle: 120,
shadowIntensity: 0.5
);
Super Resolution Module
Parameter | Type | Default |
---|---|---|
type | enum2x , 4x , 8x |
SrType.p2x |
enhanceFace | boolean | false |
model | enumPicasso , Flash |
SrModel.picasso |
enhanceQuality | boolean | false |
final t = Transformation.srUpscale(
type: SrType.p2x,
enhanceFace: false,
model: SrModel.picasso,
enhanceQuality: false
);
Vertex AI based transformations
Parameter | Type | Default |
---|---|---|
backgroundPrompt | custom | "YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr" |
negativePrompt | custom | "" |
seed | integer | 22 |
guidanceScale | integer | 60 |
final t = Transformation.vertexaiGeneratebg(
backgroundPrompt: "YSBmb3Jlc3QgZnVsbCBvZiBvYWsgdHJlZXMsd2l0aCBicmlnaHQgbGlnaHRzLCBzdW4gYW5kIGEgbG90IG9mIG1hZ2ljLCB1bHRyYSByZWFsaXN0aWMsIDhr",
negativePrompt: "",
seed: 22,
guidanceScale: 60
);
Vertex AI based transformations
final t = Transformation.vertexaiRemovebg(
);
Vertex AI based transformations
Parameter | Type | Default |
---|---|---|
type | enumx2 , x4 |
VertexaiType.x2 |
final t = Transformation.vertexaiUpscale(
type: VertexaiType.x2
);
Video Watermark Removal Plugin
final t = Transformation.wmvRemove(
);
Video Upscaler Plugin
final t = Transformation.vsrUpscale(
);
Classifies wear type and view type of products in the image
final t = Transformation.vdDetect(
);
Watermark Removal Plugin
Parameter | Type | Default |
---|---|---|
removeText | boolean | false |
removeLogo | boolean | false |
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: false,
removeLogo: false,
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"
);
Watermark Detection Plugin
Parameter | Type | Default |
---|---|---|
detectText | boolean | false |
final t = Transformation.wmcDetect(
detectText: false
);