Exemplo n.º 1
0
            private void UpdateImage()
            {
                double hue        = hueValue;
                double saturation = 0f;
                double value      = 1f;

                var imageWidth  = image.Width;
                var imageHeight = image.Height;

                for (int i = 0; i < imageWidth; i++)
                {
                    saturation = (float)i / imageWidth;

                    for (int k = 0; k < imageHeight; k++)
                    {
                        value = (float)k / imageHeight;

                        // HSL to RGB convertion.
                        Color pixelColor = ColorTranslatorEx.FromHSV(hue * 359, saturation, value);
                        image.SetPixel(i, k, pixelColor);
                    }
                }

                image.Apply();
            }
Exemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            IFilter filter;

            try
            {
                if (presetsBox.Text == "Custom")
                {
                    filter = new DummyFilter()
                    {
                        Matrix = ReadDataGrid()
                    };
                }
                else
                {
                    filter = (IFilter)presetsBox.SelectedItem;
                }

                editedPictureBox.Image = originalBmp.Apply(filter);
            }
            catch (Exception error)
            {
                MessageBox.Show(error.Message);
            }
        }
Exemplo n.º 3
0
            public AlphaPicker(int w, int h)
            {
                Alpha = 1;
                Size  = new Size(w, h);

                borderPen = new Pen(uwfBorderColor);
                cursorPen = new Pen(Color.White);
                image     = new Bitmap(w, h);
                for (int i = 0; i < w; i++)
                {
                    int rgb          = (int)(((float)i / w) * 255);
                    var currentColor = Color.FromArgb(rgb, rgb, rgb);
                    for (int k = 0; k < h; k++)
                    {
                        image.SetPixel(i, k, currentColor);
                    }
                }
                image.Apply();
            }
Exemplo n.º 4
0
            private void _UpdateImage()
            {
                double hue        = 0f;
                double saturation = .9f;
                double luminosity = .5f;

                for (int i = 0; i < _image.Width; i++)
                {
                    for (int k = 0; k < _image.Height; k++)
                    {
                        hue = (float)(_image.Height - k - 1) / _image.Height;

                        // HSL to RGB convertion.
                        var pixelColor = Color.FromHsb(hue, saturation, luminosity);
                        _image.SetPixel(i, k, pixelColor);
                    }
                    _image.Apply();
                }
            }
Exemplo n.º 5
0
        public Bitmap Apply(Bitmap image)
        {
            float cent = (float)((_rnd.NextDouble() * 0.2) + 0.4);

            image = image.Apply((x, y, src) =>
            {
                float uvX = x / (float)image.Width;
                float uvY = y / (float)image.Height;

                float disToCen = (float)Math.Sqrt(((uvX - cent) * (uvX - cent)) + ((uvY - cent) * (uvY - cent)));
                uvX           -= disToCen * 0.2f;
                uvY           += (float)Math.Sin(uvX * 16) * 0.05f;

                uvX += 0.1f * _captchaOptions.Scale;

                return(image.GetColorSample((int)(uvX * image.Width), (int)(uvY * image.Height)));
            });
            return(image);
        }
Exemplo n.º 6
0
        public void OnRedrawImportImage(Bitmap original, Bitmap modified, EditorSettingsControl editor)
        {
            Clear();

            if (original != null)
            {
                Attach(pictureBox1, original);
                Attach(pictureBox3, original);
            }

            if (modified != null)
            {
                if (editor.GameBrightnessMultiplier != 1)
                {
                    modified = modified.Apply(new IFilter[] { new BrightnessFilter(editor.GameBrightnessMultiplier) });
                }
                Attach(pictureBox2, modified, true);
                Attach(pictureBox4, modified, true);
            }
        }
        private Bitmap ImportImageIntoFalloutFormat(Bitmap img)
        {
            var filters = new List <IFilter>();

            filters.Add(new FalloutAlphaFilter(true));

            if (WidthUpDown.Value != img.Width || HeightUpDown.Value != img.Height)
            {
                filters.Add(new ResizeFilter((InterpolationMode)InterpoationComboBox.SelectedItem,
                                             new Size((int)WidthUpDown.Value, (int)HeightUpDown.Value)));
            }

            if (BrightnessUpDown.Value != 1)
            {
                filters.Add(new BrightnessFilter((float)BrightnessUpDown.Value));
            }
            filters.Add(new FalloutAlphaFilter(true));
            filters.Add(new FalloutConvertFilter(_palette, (float)BrightnessTargetUpDown.Value));
            return(img.Apply(filters));
        }
Exemplo n.º 8
0
            private void _UpdateImage()
            {
                double hue        = _hueValue;
                double saturation = 0f;
                double luminosity = 1f;

                for (int i = 0; i < _image.Width; i++)
                {
                    saturation = ((float)i / _image.Width);

                    for (int k = 0; k < _image.Height; k++)
                    {
                        luminosity = 1f - (float)k / _image.Height;

                        // HSL to RGB convertion.
                        Color pixelColor = Color.FromHsb(hue, saturation, luminosity);
                        _image.SetPixel(i, k, pixelColor);
                    }
                    _image.Apply();
                }
            }
Exemplo n.º 9
0
            private void UpdateImage()
            {
                double hue        = 0f;
                double saturation = .9f;
                double luminosity = .5f;

                var imageWidth  = image.Width;
                var imageHeight = image.Height;

                for (int i = 0; i < imageWidth; i++)
                {
                    for (int k = 0; k < imageHeight; k++)
                    {
                        hue = (float)k / imageHeight;

                        // HSL to RGB convertion.
                        var pixelColor = ColorTranslatorEx.FromHsb(hue, saturation, luminosity);
                        image.SetPixel(i, k, pixelColor);
                    }
                }

                image.Apply();
            }
Exemplo n.º 10
0
            private static Bitmap GenDefaultFolderImage()
            {
                Bitmap folderImage = new Bitmap(16, 16);

                for (int i = 0; i < folderImage.Width; i++)
                {
                    for (int k = 0; k < folderImage.Height; k++)
                    {
                        folderImage.SetPixel(i, k, Color.Transparent);
                    }
                }

                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 0, Color.Transparent);
                }
                for (int i = 3; i < 13; i++)
                {
                    folderImage.SetPixel(i, 0, Color.Transparent);
                }
                for (int i = 13; i < 15; i++)
                {
                    folderImage.SetPixel(i, 0, Color.Transparent);
                }
                for (int i = 0; i < 1; i++)
                {
                    folderImage.SetPixel(i, 1, Color.Transparent);
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 2, Color.Transparent);
                }
                for (int i = 3; i < 12; i++)
                {
                    folderImage.SetPixel(i, 2, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 3, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 3, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 3, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 3, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 11; i++)
                {
                    folderImage.SetPixel(i, 3, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 11; i < 12; i++)
                {
                    folderImage.SetPixel(i, 3, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 4, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 4, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 4, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 4, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 11; i++)
                {
                    folderImage.SetPixel(i, 4, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 11; i < 12; i++)
                {
                    folderImage.SetPixel(i, 4, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 5, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 5, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 5, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 5, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 11; i++)
                {
                    folderImage.SetPixel(i, 5, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 11; i < 12; i++)
                {
                    folderImage.SetPixel(i, 5, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 6, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 6, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 6, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 6, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 11; i++)
                {
                    folderImage.SetPixel(i, 6, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 11; i < 12; i++)
                {
                    folderImage.SetPixel(i, 6, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 7, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 7, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 7, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 7, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 11; i++)
                {
                    folderImage.SetPixel(i, 7, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 11; i < 12; i++)
                {
                    folderImage.SetPixel(i, 7, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 8, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 8, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 8, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 8, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 11; i++)
                {
                    folderImage.SetPixel(i, 8, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 11; i < 13; i++)
                {
                    folderImage.SetPixel(i, 8, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 9, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 9, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 9, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 9, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 12; i++)
                {
                    folderImage.SetPixel(i, 9, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 12; i < 13; i++)
                {
                    folderImage.SetPixel(i, 9, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 10, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 10, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 10, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 10, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 12; i++)
                {
                    folderImage.SetPixel(i, 10, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 12; i < 13; i++)
                {
                    folderImage.SetPixel(i, 10, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 11, Color.Transparent);
                }
                for (int i = 3; i < 4; i++)
                {
                    folderImage.SetPixel(i, 11, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 4; i < 9; i++)
                {
                    folderImage.SetPixel(i, 11, Color.FromArgb(255, 248, 239, 215));
                }
                for (int i = 9; i < 10; i++)
                {
                    folderImage.SetPixel(i, 11, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 10; i < 12; i++)
                {
                    folderImage.SetPixel(i, 11, Color.FromArgb(255, 237, 219, 179));
                }
                for (int i = 12; i < 13; i++)
                {
                    folderImage.SetPixel(i, 11, Color.FromArgb(255, 218, 191, 127));
                }
                for (int i = 0; i < 3; i++)
                {
                    folderImage.SetPixel(i, 12, Color.Transparent);
                }
                for (int i = 3; i < 12; i++)
                {
                    folderImage.SetPixel(i, 12, Color.FromArgb(255, 218, 191, 127));
                }

                folderImage.Apply();
                return(folderImage);
            }
Exemplo n.º 11
0
            private static Bitmap GenDefaultFileImage()
            {
                Bitmap fileImage = new Bitmap(16, 16);

                for (int i = 0; i < fileImage.Width; i++)
                {
                    for (int k = 0; k < fileImage.Height; k++)
                    {
                        fileImage.SetPixel(i, k, Color.Transparent);
                    }
                }

                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 1, Color.Transparent);
                }
                for (int i = 2; i < 10; i++)
                {
                    fileImage.SetPixel(i, 1, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 10; i < 13; i++)
                {
                    fileImage.SetPixel(i, 1, Color.Transparent);
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 1, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 2, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 2, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 8; i++)
                {
                    fileImage.SetPixel(i, 2, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 8; i < 9; i++)
                {
                    fileImage.SetPixel(i, 2, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 9; i < 10; i++)
                {
                    fileImage.SetPixel(i, 2, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 10; i < 11; i++)
                {
                    fileImage.SetPixel(i, 2, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 11; i < 13; i++)
                {
                    fileImage.SetPixel(i, 2, Color.Transparent);
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 2, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 3, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 3, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 8; i++)
                {
                    fileImage.SetPixel(i, 3, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 8; i < 9; i++)
                {
                    fileImage.SetPixel(i, 3, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 9; i < 11; i++)
                {
                    fileImage.SetPixel(i, 3, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 11; i < 12; i++)
                {
                    fileImage.SetPixel(i, 3, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 3, Color.Transparent);
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 3, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 4, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 4, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 8; i++)
                {
                    fileImage.SetPixel(i, 4, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 8; i < 9; i++)
                {
                    fileImage.SetPixel(i, 4, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 9; i < 12; i++)
                {
                    fileImage.SetPixel(i, 4, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 4, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 4, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 5, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 5, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 8; i++)
                {
                    fileImage.SetPixel(i, 5, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 8; i < 13; i++)
                {
                    fileImage.SetPixel(i, 5, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 5, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 6, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 6, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 6, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 6, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 6, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 7, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 7, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 7, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 7, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 7, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 8, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 8, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 8, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 8, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 8, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 9, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 9, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 9, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 9, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 9, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 10, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 10, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 10, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 10, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 10, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 11, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 11, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 11, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 11, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 11, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 12, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 12, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 12, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 12, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 12, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 13, Color.Transparent);
                }
                for (int i = 2; i < 3; i++)
                {
                    fileImage.SetPixel(i, 13, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 3; i < 12; i++)
                {
                    fileImage.SetPixel(i, 13, Color.FromArgb(255, 233, 233, 233));
                }
                for (int i = 12; i < 13; i++)
                {
                    fileImage.SetPixel(i, 13, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 13, Color.Transparent);
                }
                for (int i = 0; i < 2; i++)
                {
                    fileImage.SetPixel(i, 14, Color.Transparent);
                }
                for (int i = 2; i < 13; i++)
                {
                    fileImage.SetPixel(i, 14, Color.FromArgb(255, 180, 180, 180));
                }
                for (int i = 13; i < 14; i++)
                {
                    fileImage.SetPixel(i, 14, Color.Transparent);
                }

                fileImage.Apply();
                return(fileImage);
            }
Exemplo n.º 12
0
        public void Bake()
        {
            var tSize = TextureSize;

            _bakedTexture = new Bitmap(tSize.Width, tSize.Height);

            // Clear baked texture with transparent color.
            for (int y = 0; y < _bakedTexture.Height; y++)
            {
                for (int x = 0; x < _bakedTexture.Width; x++)
                {
                    _bakedTexture.SetPixel(x, y, Color.Transparent);
                }
            }

            int xOffset = 0;

            for (int i = 0; i < Text.Length; i++)
            {
                if (_font.textureList.ContainsKey(Text[i]) == false)
                {
                    continue;
                }
                var textC = _font.textureList[Text[i]];
                if (textC == null)
                {
                    continue;
                }

                float _scale     = _charSettings[i].Scale;
                Color _foreColor = _charSettings[i].ForeColor;

                float cX = xOffset + textC.OffsetX * _scale;
                float cY = GetCursor() - textC.OffsetY * _scale;
                float cW = textC.Texture.Width * _scale;
                float cH = textC.Texture.Height * _scale;
                float cA = textC.Advance * _scale;

                if (cW <= 0 || cH <= 0)
                {
                    // Skip
                }
                else
                {
                    var origPixels = textC.Texture.uTexture.GetPixels32();
                    var newTexture = new UnityEngine.Texture2D(textC.Texture.Width, textC.Texture.Height);
                    newTexture.name = "backedGlyphTexture";
                    newTexture.SetPixels32(origPixels);
                    newTexture.Apply();
                    // Scale texture if needed.
                    if ((int)cW != newTexture.width || (int)cH != newTexture.height)
                    {
                        TextureScaler.scale(newTexture, (int)cW, (int)cH);
                        //TextureScale.Bilinear(newTexture, (int)cW, (int)cH);
                        newTexture.Apply();
                    }

                    var newImagePixels = newTexture.GetPixels32();
                    for (int p = 0; p < newImagePixels.Length; p++)
                    {
                        // BlendMode: Multiply
                        var origColor   = Color.FromUColor(newImagePixels[p]);
                        var blendColorA = (float)(origColor.A * _foreColor.A) / 255;
                        var blendColorR = (float)(origColor.R * _foreColor.R) / 255;
                        var blendColorG = (float)(origColor.G * _foreColor.G) / 255;
                        var blendColorB = (float)(origColor.B * _foreColor.B) / 255;
                        var blendColor  = Color.FromArgb((int)blendColorA, (int)blendColorR, (int)blendColorG, (int)blendColorB);
                        newImagePixels[p] = blendColor.ToUColor();
                    }

                    _bakedTexture.uTexture.SetPixels32((int)cX, (int)cY, newTexture.width, newTexture.height, newImagePixels);
                }

                xOffset += (int)cA;
            }

            _bakedTexture.Apply();

            if (AutoSize)
            {
                Size = tSize;
            }
        }