import 'dart:io';
import 'package:image/image.dart';
void main() {
// Read a jpeg image from file.
Image image = decodeImage(new File('test.jpg').readAsBytesSync());
// Resize the image to a 120x? thumbnail (maintaining the aspect ratio).
Image thumbnail = copyResize(image, 120);
// Save the thumbnail as a PNG.
new File('out/thumbnail-test.png')
..writeAsBytesSync(encodePng(thumbnail));
}
5条答案
按热度按时间dvtswwa31#
看看image package。以下是examples section中的代码片段,它将
JPEG
转换为PNG
:xurqigkl2#
你需要做的第一件事是导入IMAGE库。然后使用类似的自定义功能,如下面你可以转换JPG到PNG
epggiuax3#
使用image库,您可以执行此操作
zxlwwiss4#
列出的许多建议都很好,我只是想补充一些可能会让一些人感到困惑的东西。如果你得到的是黑色的图像,看看图像中是否有Alpha通道。我使用Image包来实现我的目的,所以我只是在解码过程中添加一个:
img.decodeImage(imageFile.readAsBytesSync())..channels = img.Channels.rgba
我还使用Image/Paint方法来获取Dart UI Image作为.png:
img =图像包,缩略图是一个img图像。
7vux5j2d5#
如果你直接使用bytes,你可以做以下事情:
这将返回PNG字节,而无需跟踪图像尺寸。