2

如何在没有 base64 加密开销的情况下使用 Dart 将画布元素发送到服务器?

4

1 回答 1

4

此代码将画布元素转换为 dart 中的二进制格式:

import 'dart:html';
import 'dart:core';
import 'dart:typed_data';

/*** possible values for imagetype: 'image/jpeg', 'image/png', 'image/webp' 
 *** see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement
 ***/
Uint8List toUploadData(CanvasElement canvas, String imagetype, num quality) =>
  new Uint8List.fromList(window.atob(canvas.toDataUrl(imagetype,
      quality).split(",")[1]).codeUnits);

然后可以按如下方式上传:

UploadImageData(Uint8List imagedata) =>
    HttpRequest.request('myserverscript.php',
        method:"POST",
        sendData: imagedata);
于 2013-11-07T15:19:05.843 回答