imlibLibrary "imlib"
 Description 
The library allows you to display images in your scripts utilising the  objects. You can change the image size and screen aspect ratio (the ratio of width to height which you can change if the image is too wide / tall). The library has "example()" function which you can use to see how it works. It also has a handy "logo()" function which you can use to quickly display an image by passing the "Image data string", table position, image size and aspect ratio. And of course you can use it in your own custom way by taking the "logo()" function as an example and modifying the code to your needs.
Since tables in Pinescript are limited to 100 by 100 cells, the limit for image's size is also 100x100 px. All the necessary data to display an image is passed as a string variable, and since Pinescript has a limit of 4096 characters for variables of  type, that string can have a maximum length of 4096 characters, which is enough to display a 64x64px image (but can be enough to display a 100x100 image, depending on the image itself).
Below you can find the definitions of functions for this library.
 _decompress(data) 
  : Decompresses string with data image
  Parameters:
     data (string) 
  Returns: : Array of  with decompressed data
 load(data) 
  : Splits the string with image data into components and builds an  object
  Parameters:
     data (string) 
  Returns: : An  object
 show(imgdata, table_id, image_size, screen_ratio) 
  : Displays an image in a table
  Parameters:
     imgdata (ImgData) 
     table_id (table) 
     image_size (float) 
     screen_ratio (string) 
  Returns: : nothing
 example() 
  : Use it as an example of how this library works and how to use it in your own scripts
  Returns: : nothing
 logo(imgdata, position, image_size, screen_ratio) 
  : Displays logo using image data string
  Parameters:
     imgdata (string) 
     position (string) 
     image_size (float) 
     screen_ratio (string) 
  Returns: : nothing
 ImgData 
  Fields:
     w (series__integer) 
     h (series__integer) 
     s (series__string) 
     pal (series__string) 
     data (array__string)
Image
Streamer WatermarkThis unique indicator doesn’t help you trade but it makes your charts look super clean and professional in images and live streams! This indicator works by displaying two tables. The first table has day of the week, date, and free form text. The second table has ticker symbol and timeframe of the current chart.
Everything about the tables and the cells is completely controllable by the user! Here is a breakdown of how customizable the user can make this indicator:
Table:
 
  Toggle each table to be displayed on or off
  Move each table into 9 different locations around the chart
  Move each table separately
  Table background color and transparency
  Table border color and transparency
  Table border width
  Table frame width
 
Cells:
 
  Each cell can be individually toggled on or off (the table will resize dynamically)
  Cell text color and transparency
  Text size with 6 different options
  Date format with 12 different formats
 
Input Text:
 
  Text
  Emoji
  Text & emojis
  ASCII characters
  Symbols
  Anything that can by copied and pasted
  Any combination of the above
 
 Notes 
Use text size “Auto” if viewing the same chart on desktop and on smart phone (Auto makes the text scale based upon screen size)
 Gallery 
  
  
  
 Disclaimer 
Please read the TradingView House Rules carefully before using this indicator to add text, symbols, characters, or anything else to your charts and posting on TradingView Ideas or Scripts. This indicator and the author are not responsible for users not reading, fully understanding, and abiding by TradingView’s House Rules. Please watermark responsibly. 
PineGIF - Display Gifs & Images In Tradingview [LuxAlgo]Pinescript is not designed to create or display images, let alone gifs, but it's very fun to try, and that's what this script does. This script allows the user to display three different gifs. In this post, we explain how we managed to display images/gif's using pinescript tables.
 1. Image Pre-Processing 
Due to pinescript limitations, we can't possibly display images with an excessively high resolution. As such we targeted pixel art as a primary image source. We used a pixel art gif of the magnificent Octocat (the mascot for the source-code hosting service GitHub) for our first try.  
We first extract each frame from the gif and resize them to a 50x50 resolution which returns frames made of 2500 pixels. This process was done using python.  
 Getting Individual Pixels RGBA Values 
Python can easily return a matrix containing each pixel's rgba value. For convenience, we converted the rgba values to hex.
We then create a simple code allowing us to return a pinescript array containing the 2500 pixel hex colors. We do this process for each frame.
 2. Defining Table Cell Color 
In the code, each frame is its own array. We create a new table with dimensions equal to  len(frame1)^2  (we assume height = width).
The color of a cell is defined by the color of the image pixel at the same exact location. When a new bar is created, we do this exact process using a different frame which ultimately allows a new frame to be displayed.
 3. Playing The GIFs 
By default, the script will play the gif of the Tradingview cloud logo raining. In order to play the gif, simply use the replay mode. The replay speed allows the user to determine the frame rate (0.1 for the raining cloud and Nyan cat works best, 0.5 for Octocat).
We included the frames of the Octocat and Nyan cat gifs in the script. 
 4. Some Other Cool Images 
Displaying static images is possible and involves the same process described above. 
  
  
  
 An original idea of the lizard, implemented by the wizard. 
 


