Generating test images on the fly via JavaScript or Ruby

Updated . Posted . Visible to the public. Repeats.

When you need test images, instead of using services like lorempixel or placehold.it Show archive.org snapshot you may generate test images yourself.

Here we build a simple SVG image and wrap it into a data: URI. All browsers support SVG, and you can easily adjust it yourself.
Simply set it as an image's src attribute.

JavaScript

Simple solution in modern JavaScript, e.g. for use in the client's browser:

function svgUri(text) {
  let svg = `
    <svg width="320" height="240" xmlns="http://www.w3.org/2000/svg">
      <rect x="0" y="0" width="320" height="240" style="fill: #ddd; stroke: #666; stroke-width: 4;" />
      <text x="50%" y="50%" font-size="24" text-anchor="middle" alignment-baseline="middle" fill="#666">
        ${text}
      </text>
    </svg>
  `
  return 'data:image/svg+xml;charset=utf8,' + window.escape(svg)
}

See the attached JSFiddle for an example.

Ruby

If you like to do it on the server, here is some Ruby for you:

def svg_uri(text)
  svg = <<~SVG
    <svg width="480" height="270" xmlns="http://www.w3.org/2000/svg">
      <rect x="0" y="0" width="480" height="270" style="fill: #ddd; stroke: #666; stroke-width: 4;" />
      <text x="50%" y="50%" font-size="24" text-anchor="middle" alignment-baseline="middle" fill="#666">
        #{text}
      </text>
    </svg>
  SVG

  "data:image/svg+xml;charset=utf8,#{ERB::Util.url_encode(svg)}"
end
Arne Hartherz
Last edit
Jonas Schiele
Keywords
svg, placeholder, image
License
Source code in this card is licensed under the MIT License.
Posted by Arne Hartherz to makandra dev (2018-03-23 09:49)