Lua
Lua
Decode Base64 Image String (GIF, JPG, etc.) and Save to File
I have an XML response that includes a base 64 encoded image string (UPS label). It's a huge string and I need to save it as a gif file on my users pc.This example shows how to do it..
Chilkat Lua Downloads
local chilkat = require("chilkat")
local bd = chilkat.BinData.new()
-- I created an extra-small GIF image for this example..
local success = bd:load_file("qa_data/gif/xsmall.gif")
if not success then
print("Failed to load GIF image file.")
return
end
-- Show GIF bytes as base64:
print(bd:get_encoded("base64"))
-- This particular GIF in base64 is this:
-- R0lGODlhBQAFAMQAAAAAAP////z8/PHx8evr6+jo6OHh4d7e3sPDw8LCwpqamo2NjWxsbGRkZFpaWk1NTUtLS0hISCwsLCQkJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAFAAUAAAUTYCAYQUBAU1lI0TIgztE8jFImIQA7
-- Let's begin with an XML string:
local x = "<abc><def>R0lGODlhBQAFAMQAAAAAAP////z8/PHx8evr6+jo6OHh4d7e3sPDw8LCwpqamo2NjWxsbGRkZFpaWk1NTUtLS0hISCwsLCQkJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAFAAUAAAUTYCAYQUBAU1lI0TIgztE8jFImIQA7</def></abc>"
local xml = chilkat.Xml.new()
success = xml:load_xml(x)
-- Get the base64 string:
local gifBase64 = xml:get_child_content("def")
print(gifBase64)
-- Load bd with the base64 decoded bytes.
bd:clear()
bd:append_encoded(gifBase64, "base64")
-- Save to a GIF file.
success = bd:write_file("qa_output/xsmall.gif")