- Joined
- May 26, 2013
- Messages
- 143
- Reaction score
- 48
- First Language
- portuguese
- Primarily Uses
As I was working with my Save Engine plugin, I learned a lot about managing files and storing images in the form of a "URI data" (or base64 encoded image, as corrected me Hudell) inside the plugins, so I can call it without the developper needing to download them in separated zip files and install inside any folder of his game.
I want to share the idea and hear your opinions about that.
It's not that the developper can't customize the pictures he will use, it's just that if he don't customize, he either won't need to downlaod a zip or rar file with the images and save then inside the proper folders, because everything is inside the script. It's really easy to convert a picture to code and store it into variables. I used this site:
http://websemantics.co.uk/ (on Image to data URI Convertor)
And to store I just made this:
var my_stored_bitmap_name_ = 'base64 encoded image'Practical example:
var savefileface_arksavescreen_engine = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASZQTFRFAAAA/////A0Q/Bwf/zMzvoGC+UdMZjMz63B5mTMzzJmZoFNg64yf4qK/eDlgtYyv0bLa5dXv28vvMzMzuazWw7/vZmZmzMz/QEBQlZW6b2+Ig4OfZWV73d3/mZnM4eH/zMzf7Oz/oqKvDw8QUVFSu7u87PD/0dz/or3/qsP/u8//2+X/Zpn/eaX/jbL/4uz//cyK/d+5/unO//Tm9r6B8K1u55lf35hn3YJKzGYzxW9MtlY6qzASoTIj062rmBAM/wAA5wAAzAAAggAAsgEBmQAAUAICGAICiRAQ/2Zm/5mZ/6ysa0tLWkZGmYCA6M/PjYOD39fX9+/v7u7u6enp4+Pj39/fzMzMs7OzqampmZmZgYGBeXl5TU1NRUVFIyMjHBwc////ySzU1QAAAGJ0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAQVpKqAAALuElEQVR42uzbi1vTyBYA8AkiUMFd1mi63rXXy50UW2iVt1BBKQEtcnfh0leatEn8//+Je2Ymj8mjeQx19btfz/e5i0jTX885mcxMAvr2kwWag+agOWgOmoN+ChAK4qcAIXR12T4/P29fXEZJ6Md4Ls69aF+FRT8GFHggLkMi9EMSdH4+VYR+hKcdBp1rxUAJp8KsGighRblA9ixJ6DLqOW9rRUAIWZJhzyxN0QaK1gzlKFhVkmZGSvQUBMkSjZmQ4g0tADIkvTsjUkJD0yjS1AhLA4SUISWZ6EEklNDQJK4KnPYImZJiyxjJBqSpmnxBzH8FS/QUGhgRGgyQrCiWjbBCQFiYNM1zUeTSAcWSFGQpJLAKX9qSroqlCSGtne3JAJFzvovRhHgs6G4Z/khSl3V3QVI+TyZIJo2MIUUqxtIQYXa+SUMFFyRNOcHa0WNkgYwefWcMbU2Kp0hedA2rSJqmebRiM0aEe0PHm2sOwTaQuBjkT9P0E74QCNGMGBP6trJkwFUtEl6Hz8yTBRp2SQzHkKa7LmvpSAxM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';
Than I just render it:
var bitmap = new Bitmap(width, height); bitmap._image = new Image(); bitmap._image.src = my_stored_bitmap_name; bitmap._onLoad(); this.contents.blt(bitmap, 0, 0, bitmap._canvas.width, bitmap._canvas.height, x, y, width, height);
With java script it's fairly easy to even render lots of image kinds, in a lot of diferent extensions, not just png. Then the file size is not a problem, as I can use any kind of compression in my files.
Said that, what do you think?Could this be a common pratice in the future for plugins that need external new images?
I want to share the idea and hear your opinions about that.
It's not that the developper can't customize the pictures he will use, it's just that if he don't customize, he either won't need to downlaod a zip or rar file with the images and save then inside the proper folders, because everything is inside the script. It's really easy to convert a picture to code and store it into variables. I used this site:
http://websemantics.co.uk/ (on Image to data URI Convertor)
And to store I just made this:
var my_stored_bitmap_name_ = 'base64 encoded image'Practical example:
var savefileface_arksavescreen_engine = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASZQTFRFAAAA/////A0Q/Bwf/zMzvoGC+UdMZjMz63B5mTMzzJmZoFNg64yf4qK/eDlgtYyv0bLa5dXv28vvMzMzuazWw7/vZmZmzMz/QEBQlZW6b2+Ig4OfZWV73d3/mZnM4eH/zMzf7Oz/oqKvDw8QUVFSu7u87PD/0dz/or3/qsP/u8//2+X/Zpn/eaX/jbL/4uz//cyK/d+5/unO//Tm9r6B8K1u55lf35hn3YJKzGYzxW9MtlY6qzASoTIj062rmBAM/wAA5wAAzAAAggAAsgEBmQAAUAICGAICiRAQ/2Zm/5mZ/6ysa0tLWkZGmYCA6M/PjYOD39fX9+/v7u7u6enp4+Pj39/fzMzMs7OzqampmZmZgYGBeXl5TU1NRUVFIyMjHBwc////ySzU1QAAAGJ0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAQVpKqAAALuElEQVR42uzbi1vTyBYA8AkiUMFd1mi63rXXy50UW2iVt1BBKQEtcnfh0leatEn8//+Je2Ymj8mjeQx19btfz/e5i0jTX885mcxMAvr2kwWag+agOWgOmoN+ChAK4qcAIXR12T4/P29fXEZJ6Md4Ls69aF+FRT8GFHggLkMi9EMSdH4+VYR+hKcdBp1rxUAJp8KsGighRblA9ixJ6DLqOW9rRUAIWZJhzyxN0QaK1gzlKFhVkmZGSvQUBMkSjZmQ4g0tADIkvTsjUkJD0yjS1AhLA4SUISWZ6EEklNDQJK4KnPYImZJiyxjJBqSpmnxBzH8FS/QUGhgRGgyQrCiWjbBCQFiYNM1zUeTSAcWSFGQpJLAKX9qSroqlCSGtne3JAJFzvovRhHgs6G4Z/khSl3V3QVI+TyZIJo2MIUUqxtIQYXa+SUMFFyRNOcHa0WNkgYwefWcMbU2Kp0hedA2rSJqmebRiM0aEe0PHm2sOwTaQuBjkT9P0E74QCNGMGBP6trJkwFUtEl6Hz8yTBRp2SQzHkKa7LmvpSAxM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';
Than I just render it:
var bitmap = new Bitmap(width, height); bitmap._image = new Image(); bitmap._image.src = my_stored_bitmap_name; bitmap._onLoad(); this.contents.blt(bitmap, 0, 0, bitmap._canvas.width, bitmap._canvas.height, x, y, width, height);
Code:
if (ark_player_name.length < 4 || ark_player_name[3] == '' || ark_player_name[3] == null || ark_player_name[3] == undefined) { var bitmap = new Bitmap(144, 144); bitmap._image = new Image(); bitmap._image.src = savefileface_arksavescreen_engine; bitmap._onLoad(); } else { var bitmap = ImageManager.loadPicture(ark_player_name[3]); } this.contents.blt(bitmap, 0, 0, bitmap._canvas.width, bitmap._canvas.height, 10, 0, 144, 144); }
Said that, what do you think?Could this be a common pratice in the future for plugins that need external new images?
Last edited by a moderator:
