Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

Exibir imagem com canvas, baixada via HTTP, sem salvar em disco

22 de Abril de 2010, 14:35 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 42 vezes

Pessoal, usando a classe tcp consigo baixar uma imagem via HTTP. O código da imagem é armazenado em uma variável, e para exibí-la, preciso salvar o conteúdo da variável para um arquivo em disco. Como o módulo io de lua não está disponível no Ginga, como posso fazer para exibir tal imagem, usando o canvas, sem ter que salvar em disco?

Tentei  fazer um for k,v in ipairs(canvas) do, para mostrar os atributos do objeto canvas, mas como ele é um userdata, o ipairs não funciona. Abri o arquivo LuaCanvas.cpp para verificar os atributos, mas vi que somente as funções registradas por luaL_Reg podem ser acessadas a partir de um script lua.

Tentei carregar a imagem passando o conteúdo da mesma (armazenado na variável content) com parâmetro para canvas:new, como mostrado abaixo, mas não funciona.

img = canvas:new(content)
canvas:compose(0, 0, img)
canvas:flush()

A única maneira que vejo para exibir a imagem remota seria usando uma mídia dentro do NCL. 

Autor: Manoel Campos da Silva Filho


33 comentários

  • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
    22 de Abril de 2010, 15:05

     

    Para completar, apesar de ser possível exibir uma imagem remota com NCL, não é possível alterar dinamicamente o valor do atributo src de uma mídia (talvez com o módulo de edição ao vivo, que não está implementado). Assim, não resolve meu problema.

    • 145ea1662b45b86a90b987f094279123?only path=false&size=50&d=404Guilherme Lima(usuário não autenticado)
      26 de Abril de 2010, 11:56

       

      Oi Manoel,

      No lua vc nao tem a api io, portanto nao vai conseguir salvar a imagem em disco e nem usar canvas:new ('imgpath') para carrega-la.  O que da pra fazer eh manter a imagem em memoria e exibi-la usando as funcoes de desenho do canvas (e.g. pixel()).

       Outra solucao eh usar comandos de edicao para inserir uma media com o src (remoto) da imagem na NCL.

      • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
        26 de Abril de 2010, 12:30

         

        O problema de usar pixel é que eu precisaria estudar a estrutura de diferentes formatos de imagem (como jpg, gif, png) para poder ler o conteúdo e obter os valores de cores dos pixels da imagem. Mas não tendo outra alternativa, terei que verificar a possibilidade de fazer isto.Obrigado. 

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo