editImage method
Future<ImagesResult>
editImage({
- required List<
Uint8List> imageBytes, - required List<
String> filenames, - required String prompt,
- ImageGenerationBackground? background,
- Uint8List? maskBytes,
- String? maskFilename,
- String? model,
- int? n,
- int? outputCompression,
- ImageOutputFormat? outputFormat,
- ImageOutputQuality? quality,
- ImageResponseFormat? responseFormat,
- ImageOutputSize? size,
- String? user,
Implementation
Future<ImagesResult> editImage({
required List<Uint8List> imageBytes,
required List<String> filenames,
required String prompt,
ImageGenerationBackground? background,
Uint8List? maskBytes,
String? maskFilename,
String? model,
int? n,
int? outputCompression,
ImageOutputFormat? outputFormat,
ImageOutputQuality? quality,
ImageResponseFormat? responseFormat,
ImageOutputSize? size,
String? user,
}) async {
final boundary = '----dart-openai-image-edit-${DateTime.now().microsecondsSinceEpoch.toRadixString(16)}';
final fields = <String, String>{
'prompt': prompt,
if (background != null) 'background': background.toJson(),
if (model != null) 'model': model,
if (n != null) 'n': '$n',
if (outputCompression != null) 'output_compression': '$outputCompression',
if (outputFormat != null) 'output_format': outputFormat.toJson(),
if (quality != null) 'quality': quality.toJson(),
if (responseFormat != null) 'response_format': responseFormat.toJson(),
if (size != null) 'size': size.toJson(),
if (user != null) 'user': user,
};
final body = _buildMultipartBodyMultiple(
boundary: boundary,
files: [
for (var i = 0; i < imageBytes.length; i++) _MultipartFileSpec(field: 'image', bytes: imageBytes[i], filename: filenames[i]),
if (maskBytes != null) _MultipartFileSpec(field: 'mask', bytes: maskBytes, filename: maskFilename ?? 'mask.png'),
],
fields: fields,
);
final resp = await httpClient.post(
baseUrl.resolve('images/edits'),
headers: getHeaders({'Content-Type': 'multipart/form-data; boundary=$boundary'}),
body: body,
);
if (resp.statusCode == 200) {
return ImagesResult.fromJson(jsonDecode(resp.body));
}
throw OpenAIRequestException.fromHttpResponse(resp);
}