如何在飞镖中加载图像服务器端?

时间:2013-06-25 15:51:49

标签: dart

我已经看到了使用ImageElement加载图片的答案。这仅适用于浏览器端,我想在服务器上进行一些处理。

有没有办法从服务器端dart中的PNG加载和读取RGBA值?如果没有计划任何服务器端图像处理库?

无论如何都要运行Dartium“无头”,所以我可以使用canvas api来做我想要的事情吗?

2 个答案:

答案 0 :(得分:5)

有一个dart库可以读写服务器端的PNG图像, http://pub.dartlang.org/packages/image

库可以读写PNG和JPG图像,并提供了许多图像处理命令。

例如,要读取PNG,请调整其大小,然后使用此库将其保存到磁盘:

import 'dart:io' as Io;
import 'package:image/image.dart';
void main() {
    // Read a PNG image from file.
    Image image = readPng(new Io.File('foo.png').readAsBytesSync());

    // Resize the image to a 120x? thumbnail (maintaining the aspect ratio).
    Image thumbnail = copyResize(image, 120);

    // Save the thumbnail to disk as a PNG.
    new Io.File('foo-thumbnail.png').writeAsBytesSync(writePng(thumbnail));
}

答案 1 :(得分:2)

目前没有图书馆。

我一直在使用ImageMagick。您可以使用Process.run()来运行它。这是一个例子:

Process.run('/usr/local/bin/convert', ['file', '-resize', '100x100']);