¿Cómo hacer para cargar una imagen de Internet usando Gtk3 con javascript?
Traté de usar
var image = new Image(); image.src(url);Pero esto da un error -> ERROR JS: Error de referencia: la imagen no está definida
¿Alguna ayuda?
Gracias.
// Actualizar Dado que no había suficiente información disponible arriba, la publicaré aquí ->
const Gtk = imports.gi.Gtk; const Gdk = imports.gi.Gdk; const Gio = imports.gi.Gio; let app = new Gtk.Application({ application_id: 'org.gtk.ExampleApp' }); app.connect("activate", ()=>{ let win = new Gtk.Window({application : app}); let img = new Gtk.Image(); let url = 'https://spotlightreport.net/wp-content/uploads/2020/10/AC-DC-SHOT-IN-THE-DARK-PACK-SHOT-1920x1920.jpg'; let input_stream = Gio.MemoryInputStream.new_from_data(url, null); let pixbuf = Gdk.GdkPixbuf.Pixbuf.new_from_stream(input_stream); img.set_from_pixbuf(pixbuf); win.connect('destroy', ()=>{win.close();}); win.set_default_size(450,250); win.show_all(); }); app.run([]);De hecho, quiero cargar la imagen desde la URL directamente, es decir, sin descargarla. Y encontré una publicación para obtener datos usando funciones de JavaScript, pero no funcionó. ¿Cómo busco la imagen y la muestro? De hecho, traté de hacer esto -> Publicar
Hay muy poco código para continuar aquí, pero puedo imaginar varias razones por las que no funciona:
imports.gi.versions.Gtk = "3.0"; const { Gtk } = imports.gi; const image = new Gtk.Image() // Not `new Image()`src() no es un método que exista en Gtk.Image ni lo menciona en ninguna parte. Puede encontrar la documentación JS de Gtk.Image en https://gjs-docs.gnome.org/gtk30-image/ . Como verá allí, no hay ningún método para cargar una imagen Gtk.Image desde una URL aleatoria (a menos que sea un archivo). Por lo tanto, primero tendrá que descargar el contenido de la URL, crear un Gdk.Pixbuf y luego usarlo para su Gtk.Image.En cualquier caso: creo que es mejor que primero sigas la guía de GTK3 en GJS (también hay una sección sobre el uso de Gtk.Image ) y comiences con algunos ejemplos más pequeños. Una vez que aprenda los conceptos básicos y comience a sentirse cómodo con GJS, puede comenzar a implementar cosas personalizadas.