The text/plain hack you implemented is definitely wrong, and will cause problems if the writemime function is used in any other context.
You need to decide what MIME type the vector of images will be. The most natural choices would be either HTML (http://stackoverflow.com/questions/2807251/can-i-embed-a-png-image-into-an-html-page) or SVG (http://stackoverflow.com/questions/6249664/does-svg-support-embedding-of-bitmap-images), both of which support embedding PNG data. e.g. for HTML, you could do something like the following (untested, may have typos): function Base.writemime(io::IO, ::MIME"text/html", x::AbstractVector{Png}) print(io, "<p>", length(x), "-element ", typeof(x), "<ul>) png = MIME("image/png") for i in x print(io, "<li><img src=\"data:image/png;base64,", base64(writemime, png, i), "\" /></li>") end print(io, "</ul>") end
