From 550a66aaef473b8a9a36e340973bd264526da918 Mon Sep 17 00:00:00 2001 From: gintama91 Date: Tue, 4 Jul 2023 16:21:45 +0530 Subject: [PATCH 1/2] local images (base64) --- examples/local_images.rb | 4 ++++ lib/scarpe/wv/image.rb | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 examples/local_images.rb diff --git a/examples/local_images.rb b/examples/local_images.rb new file mode 100644 index 000000000..d771fa2e4 --- /dev/null +++ b/examples/local_images.rb @@ -0,0 +1,4 @@ +Shoes.app do + image "docs/static/man-builds.png" + end + \ No newline at end of file diff --git a/lib/scarpe/wv/image.rb b/lib/scarpe/wv/image.rb index 0885d6ffa..b2f18ce68 100644 --- a/lib/scarpe/wv/image.rb +++ b/lib/scarpe/wv/image.rb @@ -1,9 +1,14 @@ # frozen_string_literal: true +require "base64" +require "uri" + class Scarpe class WebviewImage < WebviewWidget def initialize(properties) super + + @url = valid_url?(@url) ? @url : "data:image/png;base64,#{encode_image_to_base64(@url)}" end def element @@ -20,6 +25,25 @@ def element private + def valid_url?(string) + uri = URI.parse(string) + uri.is_a?(URI::HTTP) || uri.is_a?(URI::HTTPS) + rescue URI::InvalidURIError, URI::BadURIError + false + end + + def encode_image_to_base64(image_filename) + directory_path = File.dirname(__FILE__, 4) + + image_path = File.join(directory_path, image_filename) + + image_data = File.binread(image_path) + + encoded_data = Base64.strict_encode64(image_data) + + encoded_data + end + def style styles = {} From 74d259be1f0db4f5d3dcd3ba3bec5297893cc80a Mon Sep 17 00:00:00 2001 From: gintama91 Date: Tue, 4 Jul 2023 16:35:20 +0530 Subject: [PATCH 2/2] add webview dependencies to readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 703a5e0aa..26f064faf 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,9 @@ This is where most of the action is happening right now, and to have the full Sc # dependencies - Mac version brew install portaudio pkg-config # for sound! # dependencies - Ubuntu Linux version -sudo apt-get install libportaudio2 +sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev libportaudio2 + +for any other linux or windows. please see the webview docs for your [platform](https://github.com/webview/webview#prerequisites) # get it git clone http://github.com/scarpe-team/scarpe