HTML5 can contain links to external images and other resources (which often makes the HTML5 page much faster to load because it is a small text file with links to the images, videos, or audio it needs). This work fine so long as you have network connectivity…
One of the big new features in HTML5 is the ability for the code to work without a network connection and to store data offline in a cache. Sometimes, however, this functionality is overkill and you can embed an image more simply by just inserting the data into the HTML5 file.
An image consists of binary data so it needs to be stored in a suitable format inside the text file. Base64 encoding (a simple algorithm which converts bytes into a block of what looks like text data) is ideal (this is what you often use in emails to add in binary content). So instead of the more usual HMTL5 format of
<img id="Im0" style="display: none;" src="img/1/Im0.png" alt="Im0" width="540" height="720" />
you would see
base64,iV...Big block of chars here...rDYgg==" alt="Im0" width="540" height="720" />
If you want to have a try in our PDF5HTML5 convertor, there is a new flag to enable it in today’s release (it is commented out by default in ExtractPagesAsHTML.java example).
/** * embed image inside PDF as base64 encoded stream */HTMLoutput.setBooleanValue(HTMLDisplay.EmbedImageAsBase64Stream, true);
Of course once you start playing with images, you may want to have far more control on images and be able to control their exact size. Maybe you should read tomorrow’s blog article?
This post is part of our “HTML5 Article index” in these articles, we aim to help you understand the world of HTML5.
Do you need to write or read JPEG in Java?
We have an easy guide on how to write JPEG in Java using ImageIO and JDeli.
You can learn how to read/write most of the image files in ImageIO. However, it gives little control over the process.
JDeli is easy to use and offers complete support, so why don't you give a try?