Exemple #1
0
        public static async Task <byte[]> GetImageBytesFast(this HTMLImageElement img, double quality = 1)
        {
            if (quality > 1)
            {
                throw new ArgumentOutOfRangeException("quality should be equal or less than 1.");
            }
            var imgID = img.Id;

            img.Id = "imgMN";
            string URL = Eval(
                @"(function(){
                  var MAX_WIDTH = 500;
                  var width = " + img.NaturalWidth + @";
                  var height = " + img.NaturalHeight + @";
                  height =height*( MAX_WIDTH / width);
                  width = MAX_WIDTH;                            
                  var canvas = document.createElement('canvas');
                  canvas.width = width;
                  canvas.height = height;
                  var ctx = canvas.getContext('2d');
                  ctx.drawImage(document.getElementById('" + img.Id + @"'),0,0,width,height);
                  return URL.createObjectURL(canvas.toBlob('image/jpeg'," + quality.ToString("#.############") + "));}).call(null);");

            img.Id = imgID;
            using (var WebClient = new HttpClient())
                return(await WebClient.GetByteArrayAsync(URL));
        }
Exemple #2
0
        public static byte[] GetImageBytes(this HTMLImageElement img, double quality = 1)
        {
            if (quality > 1)
            {
                throw new ArgumentOutOfRangeException("quality should be equal or less than 1.");
            }
            var imgID = img.Id;

            img.Id = "imgMN";
            string URL = Eval(
                @"(function(){
                  var MAX_WIDTH = 500;
                  var width = " + img.NaturalWidth + @";
                  var height = " + img.NaturalHeight + @";
                  height =height*( MAX_WIDTH / width);
                  width = MAX_WIDTH;                            
                  var canvas = document.createElement('canvas');
                  canvas.width = width;
                  canvas.height = height;
                  var ctx = canvas.getContext('2d');
                  ctx.drawImage(document.getElementById('" + img.Id + @"'),0,0, width, height);
                  return canvas.toDataURL('image/jpeg'," + quality.ToString("#.############") + ");}).call(null);");

            img.Id = imgID;
            return(System.Convert.FromBase64String(URL.Substring(23)));
        }
Exemple #3
0
        public HTMLBackground(string url, double opacity, int delay = 3)
        {
            background = new HTMLDivElement();
            background.Style.ZIndex     = "-1";
            background.Style.Overflow   = Overflow.Hidden;
            background.Style.Visibility = Visibility.Visible;
            background.Style.Position   = Position.Fixed;
            background.Style.Top        = "0px";
            background.Style.Left       = "0px";
            background.Style.Width      = string.Format("{0}px", Window.InnerWidth);
            background.Style.Height     = string.Format("{0}px", Window.InnerHeight);
            background.Style.Opacity    = string.Format("{0}", 0);

            Document.Body.AppendChild(background);

            image                = new HTMLImageElement();
            image.Src            = url;
            image.Style.Position = Position.Relative;
            background.AppendChild(image);

            image.OnLoad += delegate {
                sizeElements();

                background.Style.TransitionDuration = string.Format("{0}s", delay);
                background.Style.Opacity            = string.Format("{0}", opacity);
            };

            Window.OnResize += delegate {
                background.Style.TransitionDuration = string.Format("{0}s", 0);
                sizeElements();
            };
        }
Exemple #4
0
        public void Draw()
        {
            if (_message == "")
            {
                return;
            }

            int brightness   = 0;
            var levelContext = _core.Layers.GetStageLayer(0).GetContext();
            var resolution   = _core.Resolution;

            if (!_resourcePool.Loaded)
            {
                levelContext.FillStyle = "rgb(" + (brightness) + "," + (brightness) + "," + (brightness) + ")";
                levelContext.FillRect(0, 0, resolution.Width, resolution.Height);                 // Clear
                levelContext.FillStyle = "white";
                levelContext.Font      = resolution.MultiplyClamp(10) + "px Consolas, monospace";
                levelContext.FillText("Loading...", resolution.MultiplyClamp(4), resolution.MultiplyClamp(12));
                return;
            }

            _image = _resourcePool.Images[Image.Background];

            levelContext.ClearRect(0, 0, resolution.Width, resolution.Height);

            if (!_renderedControls)
            {
                _core.RenderActions();
                _renderedControls = true;
            }
        }
Exemple #5
0
 public Grass()
 {
     _img = new HTMLImageElement()
     {
         Src = File
     };
 }
Exemple #6
0
        private void _SpriteFont(HTMLImageElement image, int glyphWidth, int glyphHeight, bool xtrim)
        {
            HTMLCanvasElement canvas = new HTMLCanvasElement();

            canvas.width  = (uint)glyphWidth;
            canvas.height = (uint)glyphHeight;
            CanvasRenderingContext2D context = canvas.getContext(Literals._2d);

            for (int i = start; i <= end; i++)
            {
                context.clearRect(0, 0, canvas.width, canvas.height);
                context.drawImage(image, glyphWidth * (i - start), 0, glyphWidth, glyphHeight, 0, 0, glyphWidth, glyphHeight);

                // Make sure loaded image is large enough
                // If image is not large enough, generate error glyphs
                if (image.width >= glyphWidth * (i - start) + glyphWidth)
                {
                    glyphs[i] = SpriteSheet.AddSpriteFontGlyph(canvas, context, xtrim);
                }
                else
                {
                    glyphs[i] = SpriteSheet.AddSpriteFontGlyph(canvas, context, false);
                }
            }

            canvas.remove();

            loaded = true;
        }
Exemple #7
0
        public static HTMLImageElement Image(Attributes init)
        {
            var a = new HTMLImageElement();

            init?.InitImageElement(a);
            return(a);
        }
Exemple #8
0
 public Dirt()
 {
     _img = new HTMLImageElement()
     {
         Src = File
     };
 }
Exemple #9
0
        private void _AddSprite(HTMLImageElement image, Sprite sprite, RectangleI?source = null)
        {
            RectangleI s = source ?? new RectangleI((int)image.width, (int)image.height);

#if DEBUG
            Point2 offset = GetValidPlacementNaive(s.W, s.H);
#else
            Point2 offset = GetValidPlacement(s.W, s.H);
#endif

            //for (int y = 0; y < s.H; y++)
            //	for (int x = 0; x < s.W; x++)
            //		Bitmap[offset.X + x, offset.Y + y] = spriteData[s.X + x, s.Y + y];

            if (Platform.GraphicsBackend == GraphicsBackend.WebGL2)
            {
                (Texture as WebGL2.WebGL2Texture).UpdateData(image, offset.X, offset.Y);
            }
            else if (Platform.GraphicsBackend == GraphicsBackend.WebGL)
            {
                (Texture as WebGL.WebGLTexture).UpdateData(image, offset.X, offset.Y);
            }

            sprite.Update(this, offset.X, offset.Y, s.W, s.H);
            Sprites.Add(sprite);
            aabbs.Add(new AABBi(sprite.SpriteSheetX, sprite.SpriteSheetY, sprite.Width + padding, sprite.Height + padding));
        }
Exemple #10
0
        public static void OnLoad()
        {
#if DEBUG
            Document.GetElementById <HTMLDivElement>("DebugFlag").Hidden = false;
#endif
            topError        = Document.GetElementById <HTMLDivElement>("D_JsWarn");
            topError.Hidden = true;
            Document.GetElementById <HTMLParagraphElement>("P_Version").TextContent = "Switch theme injector online - Version : " + AppVersion + " - Core version : " + SwitchThemesCommon.CoreVer;
            string useragent = Window.Navigator.UserAgent.ToLower();
            if (useragent.Contains("msie") || useragent.Contains("trident"))
            {
                Document.GetElementById <HTMLDivElement>("D_IeWarn").Hidden = false;
            }

            loader          = Document.GetElementById <HTMLDivElement>("loaderDiv");
            LoaderText      = Document.GetElementById <HTMLParagraphElement>("LoadingText");
            lblDetected     = Document.GetElementById <HTMLParagraphElement>("P_DetectedSZS");
            lblDDSPath      = Document.GetElementById <HTMLParagraphElement>("P_DDSPath");
            lblDDSPath_NX   = Document.GetElementById <HTMLParagraphElement>("P_DDSPath2");
            LayoutsComboBox = Document.GetElementById <HTMLSelectElement>("LayoutsBox");
            LayoutPrevDiv   = Document.GetElementById <HTMLDivElement>("PreviewDiv");
            LayoutPrevImg   = Document.GetElementById <HTMLImageElement>("PreviewImg");

            HomePartBox_NX     = Document.GetElementById <HTMLSelectElement>("HomePartBox");
            LayoutsComboBox_NX = Document.GetElementById <HTMLSelectElement>("LayoutsBox2");
            LayoutPrevDiv_NX   = Document.GetElementById <HTMLDivElement>("PreviewDiv2");
            LayoutPrevImg_NX   = Document.GetElementById <HTMLImageElement>("PreviewImg2");

            Document.GetElementById <HTMLParagraphElement>("P_PatchList").InnerHTML = SwitchThemesCommon.GeneratePatchListString(DefaultTemplates.templates).Replace("\r\n", "<br />");

            LoadCustomLayouts();
        }
Exemple #11
0
 public Stone()
 {
     _img = new HTMLImageElement()
     {
         Src = File
     };
 }
Exemple #12
0
        public static void Main()
        {
            var canvas = (HTMLCanvasElement)Document.GetElementById("scene");
            var image  = new HTMLImageElement();

            image.Src     = "/Content/Images/Sprites.png";
            image.OnLoad += e =>
            {
                var renderContext   = new RenderContext(canvas, image);
                var camera          = new Camera(new Vector2D(0, 0));
                var map             = new Map(10, 10, (x, y) => 1);
                var tileTypeFactory = new TileTypeFactory(
                    new Dictionary <int, TileType>
                {
                    { 0, new TileType(64, 0, 64, 32) },
                    { 1, new TileType(0, 0, 64, 32) },
                }
                    );

                Window.OnLoad = Window.OnResize = ev =>
                {
                    renderContext.ResizeCanvas(Window.InnerWidth, Window.InnerHeight);
                };

                new GameContext(renderContext, map, tileTypeFactory, camera).Start();
            };
        }
Exemple #13
0
        public static TextureInfo Create(WebGLRenderingContext gl, string fileName)
        {
            var texture     = gl.CreateTexture();
            var textureInfo = new TextureInfo(
                texture: texture,
                width: Optional <int> .Missing,
                height: Optional <int> .Missing
                );

            var image = new HTMLImageElement();

            image.Src    = fileName;
            image.OnLoad = (ev) =>
            {
                textureInfo.Width  = image.Width;
                textureInfo.Height = image.Height;

                gl.BindTexture(gl.TEXTURE_2D, textureInfo.Texture);
                gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
                gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

                textureInfo.OnLoad?.Invoke();
            };

            return(textureInfo);
        }
Exemple #14
0
 public WebMapTileImage()
 {
     Image         = new HTMLImageElement();
     Image.OnLoad += (e) =>
     {
         OnDraw?.Invoke(this, new EventArgs());
     };
 }
 public ValueTask set_domImage(HTMLImageElement value)
 {
     __domImage = null;
     return(EventHorizonBlazorInterop.Set(
                this.___guid,
                "domImage",
                value
                ));
 }
Exemple #16
0
 public Bitmap(string src, double width, double height)
 {
     Image = new HTMLImageElement()
     {
         Src = src
     };
     Width  = width;
     Height = height;
 }
Exemple #17
0
        /// <summary>
        /// Constructor - Loads the image and sets instance variables
        /// </summary>
        /// <param name="source">The path to an image file</param>
        public static void LoadGraphic(string source)
        {
            var img = new HTMLImageElement();

            img.Style.Visibility = Visibility.Hidden;
            img.Src = source;
            Document.Body.AppendChild(img);
            Graphics.Add(source, img);
        }
 public void loadImage(string url, HTMLImageElement image)
 {
     EventHorizonBlazorInterop.Func <CachedEntity>(
         new object[]
     {
         new string[] { this.___guid, "loadImage" }, url, image
     }
         );
 }
Exemple #19
0
        private void _ProcessButtonImage()
        {
            if (string.IsNullOrWhiteSpace(_image))
            {
                if (_imageElement != null)
                {
                    _imageElement.Delete();
                    _imageElement = null;
                }
            }
            else
            {
                if (_imageElement == null)
                {
                    _imageElement = new HTMLImageElement();
                }
                else
                {
                    _imageElement.Delete();
                }
                _imageElement.SetImage(_image, !_useBase64Image, false);
                string padding = _buttonImageSize == 0 ? "16px" : _buttonImageSize.ToPx();

                _imageElement.style.height   = padding;
                _imageElement.style.position = "absolute";
                _imageElement.style.top      = "1px";

                if (!_imageRightAlign)
                {
                    _imageElement.style.backgroundPosition = "left";
                    _imageElement.style.paddingLeft        = padding;
                    _imageElement.style.paddingRight       = "";

                    _imageElement.style.left = "1px";

                    if (Content.lastChild == null)
                    {
                        Content.appendChild(_imageElement);
                    }
                    else
                    {
                        Content.insertBefore(_imageElement, Content.lastChild);
                    }
                }
                else
                {
                    _imageElement.style.right = "1px";
                    _imageElement.style.left  = "";
                    _imageElement.style.backgroundPosition = "right";
                    _imageElement.style.paddingRight       = padding;
                    _imageElement.style.paddingLeft        = "";

                    Content.appendChild(_imageElement);
                }
            }
        }
Exemple #20
0
 public void HandleLoadedTexture(HTMLImageElement image)
 {
     gl.PixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
     gl.BindTexture(gl.TEXTURE_2D, this.texture);
     gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
     gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
     gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
     gl.GenerateMipmap(gl.TEXTURE_2D);
     gl.BindTexture(gl.TEXTURE_2D, null);
 }
Exemple #21
0
        static public spriteTexture fromRaw(WebGLRenderingContext webgl, HTMLImageElement img, textureformat format = textureformat.RGBA, bool mipmap = false, bool linear = true)
        {
            var st = new spriteTexture(webgl, null, format, mipmap, linear);

            st.texture = webgl.CreateTexture();
            st.img     = img;
            st._loadimg(mipmap, linear);

            return(st);
        }
 public void texImage2D(
     int target,
     int level,
     int internalformat,
     int format,
     int type,
     HTMLImageElement image)
 {
     throw new NotImplementedException();
 }
Exemple #23
0
        public static Task <HTMLImageElement> LoadImage(string value)
        {
            HTMLImageElement image = new HTMLImageElement
            {
                Src = value
            };
            var task = new TaskCompletionSource <HTMLImageElement>();

            image.OnLoad = e => task.SetResult(image);
            return(task.Task);
        }
 public void texSubImage2D(
     int target,
     int level,
     double xoffset,
     double yoffset,
     int format,
     int type,
     HTMLImageElement image)
 {
     throw new NotImplementedException();
 }
Exemple #25
0
 public Player()
 {
     _imgPlayer = new HTMLImageElement()
     {
         Src = PlayerGraphics
     };
     _imgWeapon = new HTMLImageElement()
     {
         Src = WeaponGraphics
     };
 }
Exemple #26
0
        public static IActionView <HTMLElement> DefaultExitButtonBuilder()
        {
            var result = new InputTypeButtonActionView("");

            result.Widget.ClassList.Add(Magics.CssClassDatagridAction);
            var img = new HTMLImageElement {
                Src = Magics.IconUrlExit
            };

            result.Widget.AppendChild(img);
            return(result);
        }
Exemple #27
0
        public void InitTexture()
        {
            this.texture = gl.CreateTexture();

            var textureImageElement = new HTMLImageElement();

            textureImageElement.OnLoad = (ev) =>
            {
                this.HandleLoadedTexture(textureImageElement);
            };

            textureImageElement.Src = this.textureImageSrc;
        }
Exemple #28
0
        public Sprite AddSprite(string file, RectangleI?source = null)
        {
            Sprite sprite = new Sprite(this, 0, 0, 1, 1);

            // Load image async
            HTMLImageElement image = new HTMLImageElement();

            image.crossOrigin = "";
            image.onload      = (ev) => { _AddSprite(image, sprite, source); };
            image.src         = file;

            return(sprite);
        }
 public static HTMLImageElement LoadImage(string input, HTMLImageElement onLoad, ActionCallback <string, object> onError, IOfflineProvider offlineProvider, string mimeType = null)
 {
     return(EventHorizonBlazorInterop.FuncClass <HTMLImageElement>(
                entity => new HTMLImageElement()
     {
         ___guid = entity.___guid
     },
                new object[]
     {
         new string[] { "BABYLON", "Tools", "LoadImage" }, input, onLoad, onError, offlineProvider, mimeType
     }
                ));
 }
Exemple #30
0
        private void ImageLoad(HTMLImageElement image)
        {
            var canvas = new HTMLCanvasElement
            {
                Width  = image.Width,
                Height = image.Height
            };
            var context = canvas.GetContext(CanvasTypes.CanvasContext2DType.CanvasRenderingContext2D);

            context.DrawImage(image, 0, 0);
            _data = context.GetImageData(0, 0, canvas.Width, canvas.Height);
            Load?.Invoke();
        }