Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
oa24153
Binge Watcher

Getting image in bytes and wanted to display on channel's HDPoster as jpeg image

I'm getting the following request from postman for the Poster image of my channel.

Postman RequestPostman Request

I do research and found that the image I'm getting is in byteArray/roBitmap and I have to display it in Poster Image by parsing it from JSON. How do i can parse and get its link to show it on HDposter ?

Spoiler
Spoiler
'The Following is the code to get responce,
response = fetch({ url: m.global.baseUrl + "/" + item.id + "/poster?w=100&h=100", timeout: 30000, method: "GET", headers: { "X-API-TOKEN": "c1cf45d8-73de-4467-9d33-802b00d27ed9" } }) if response.ok _response = response.json() ? _response end if
'The following is the fetch function to parse image from JSON
function fetch(options) timeout = options.timeout if timeout = invalid then timeout = 30000 response = invalid port = CreateObject("roMessagePort") request = CreateObject("roUrlTransfer") request.SetCertificatesFile("common:/certs/ca-bundle.crt") request.InitClientCertificates() request.RetainBodyOnError(true) request.SetMinimumTransferRate(1, 60) request.SetMessagePort(port) if options.headers <> invalid for each header in options.headers val = options.headers[header] if val <> invalid then request.addHeader(header, val) end for end if if options.method <> invalid request.setRequest(options.method) end if request.SetUrl(options.url) requestSent = invalid if options.body <> invalid requestSent = request.AsyncPostFromString(options.body) else requestSent = request.AsyncGetToString() end if if (requestSent) ? requestSent msg = Wait(timeout, port) status = - 999 body = "(TIMEOUT)" headers = {} if (Type(msg) = "roUrlEvent") status = msg.GetResponseCode() headersArray = msg.GetResponseHeadersArray() for each headerObj in headersArray for each headerName in headerObj val = { value: headerObj[headerName] next: invalid } current = headers[headerName] if current <> invalid prev = current while current <> invalid prev = current current = current.next end while prev.next = val else headers[headerName] = val end if end for end for body = msg.GetString() if status < 0 then body = msg.GetFailureReason() end if response = { _body: body, status: status, ok: (status >= 200 and status < 300), headers: headers, text: function() return m._body end function , json: function() return ParseJson(m._body) end function , xml: function() if m._body = invalid then return invalid xml = CreateObject("roXMLElement") if not xml.Parse(m._body) then return invalid return xml end function } end if return response end function

 

0 Kudos
Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.