¿Qué navegadores (y versiones) son compatibles con el método Canvas.toBlob?

Estoy trabajando en un proyecto de creación de imagen minimalista y necesito tener la capacidad de crear imágenes dentro del navegador que a su vez se utilicen en un servidor. Hasta ahora, el método Canvas.toDataUrl() ha cumplido con nuestras necesidades, pero acabo de enterarme del método Canvas.toBlob() que sería mucho más conveniente.

Parece que el método toBlob() es nuevo en la especificación en unos pocos meses (no puedo encontrar ninguna referencia directa a cuándo se agregó).

¿Qué navegadores son compatibles con toBlob y, más importante aún, qué versiones de esos navegadores incluyen la integración del método? Además, ¿el soporte para esta característica es “defectuoso” o está en desarrollo para los principales navegadores?

ACTUALIZAR

Hice esta pregunta hace 8 meses. He presentado mi proyecto mencionado anteriormente, esperando cualquier actualización sobre el estado del método canvas.toBlob() . Según lo que puedo recostackr en la web, la implementación de toBlob() parece estar entrando en uso en algunos navegadores.

Pregunto una vez más, ¿qué tan ubicuo es el método canvas.toBlob() entre los navegadores que han comenzado a integrar el objeto canvas de HTML5 y qué versiones de esos navegadores fueron los primeros en integrar este soporte?

A partir de febrero de 2016 , estos navegadores son compatibles con toBlob()

  • Firefox 19
  • Chrome 50
  • IE10 como el msToBlob() prefijado msToBlob()

Tenga en cuenta que esta respuesta se escribió originalmente en 2011. Original respuesta / ediciones a continuación.


toBlob() es realmente nuevo y no recomendaría su uso en una aplicación para el consumidor a menos que pueda pedirles explícitamente que utilicen un navegador en particular (o controlar el entorno).

toBlob() agregó el 12 de mayo y tiene una funcionalidad limitada según se define. No existe en Chrome todas las noches, Firefox todas las noches, ni IE9.

Vale la pena señalar que Firefox tiene un archivo mozGetAs funcional

Todavía hay una discusión para agregarlo a Chrome .

La discusión para Firefox. Han decidido esperar hasta que la especificación sea más clara antes de intentar una implementación.

La especificación para toBlob() es muy vaga con muchas preguntas internas aún sin resolver. Ni siquiera están seguros de qué parámetros permitir el uso típico de toBlob() todavía.


Actualización el 10 de abril de 2012

ToBlob todavía no tiene soporte. Todavía no existe en Chrome Canary (Nightly), Firefox Nightly ni IE9.

Si quieres ver las actualizaciones en Chrome estrella esto:

http://code.google.com/p/chromium/issues/detail?id=67587

Si quieres ver las actualizaciones en Firefox, suscríbete a este error aquí:

https://bugzilla.mozilla.org/show_bug.cgi?id=648610

Actualización: a partir del 21 de febrero de 2016.toBlob ahora funciona en Chrome 50 (actualmente canario)

Si lo necesita, este archivo js implementa la función toBlob en los navegadores que ya no lo admiten: https://github.com/eligrey/canvas-toBlob.js

Aquí la publicación de los autores y aquí el código fuente ampliado.

Sin embargo, parece que incluso esta biblioteca no funciona en todos los navegadores, ya que

“requiere compatibilidad BlobBuilder para funcionar, que no está presente en todos los navegadores”

Hay una gran implementación de JavaScript de la función canvas.toBlob () con también incluye la función nativa FireFox mozGetAsFile ():

https://github.com/blueimp/JavaScript-Canvas-to-Blob

Es una lástima que esta característica no sea más avanzada, pero es bueno saber su estado (gracias a Simon).

Mientras tanto, esta respuesta proporciona una gran solución para lograr la eficiencia de la red de carga binaria al eliminar la saturación de cadenas de dataUri codificadas en base64. Obviamente, solo es compatible con los últimos navegadores, pero si está escribiendo una extensión o está listo para aceptar una dependencia de un navegador de última generación, podría ser una buena opción.