1

Тема: Как в XML документ добавить изображение

На днях понадобилось в xml установить вложенную картинку. Оказалось довольно все просто, необходимо в стилях xml указать цвет и расположение попиксельно всего изображения.
img {   display: table;
    width: 1px;
    height: 1px;
    background: transparent;
    box-shadow:0px 0px #FFFFFF, 0px 1px #FFFFFF, 0px 2px #FFFFFF,.............}

для получения цвета и расположения каждого пикселя была написана простенькая программка:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Format_Img
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Bitmap bmp;
        //подключить картинку
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog()==DialogResult.OK)
            {
                pictureBox1.ImageLocation = openFileDialog1.FileName;//загружаем цветную картинку
                bmp = new Bitmap(openFileDialog1.FileName);
                px_cvet.Text = vivod(bmp);//вывод координаты и цвет пикселя
                B_W();//делаем черно-белую картинку     
            }
        }
       
        //вывести результат
        private string vivod(Bitmap bmp2)
        {
            string str = "";
           
            for (int x = 0; x < bmp2.Width; x++)
            {
                for (int y = 0; y < bmp2.Height; y++)
                {
                    string hex=RGB2Hex(bmp2.GetPixel(x, y).R.ToString(), bmp2.GetPixel(x, y).G.ToString(), bmp2.GetPixel(x, y).B.ToString());
                    if (hex != "#FFFFFF")
                    {
                        str += x.ToString() + "px " + y.ToString() + "px " + hex + ", ";
                    }
                }
            }
            str = str.Substring(0, str.Length - 2) + ";";
            return str;
        }

        //перевод RGB
        public string RGB2Hex(string R, string G, string B)
        {
            string Color1 = "#";

            R = Convert.ToString(Convert.ToByte(R));
            G = Convert.ToString(Convert.ToByte(G));
            B = Convert.ToString(Convert.ToByte(B));

            Color1 += Convert.ToInt32(R).ToString("X2");
            Color1 += Convert.ToInt32(G).ToString("X2");
            Color1 += Convert.ToInt32(B).ToString("X2");

            return Color1;
        }

        //черно белая
        private void B_W()
        {
            // делаем пустую картинку того же размера
            Bitmap bmp3 = new Bitmap(bmp.Width, bmp.Height, bmp.PixelFormat);

            for (int y = 0; y < bmp.Height; ++y)
            {
                for (int x = 0; x < bmp.Width; ++x)
                {
                    Color c = bmp.GetPixel(x, y);
                    byte rgb = (byte)(0.3 * c.R + 0.59 * c.G + 0.11 * c.B);
                    bmp3.SetPixel(x, y, Color.FromArgb(c.A, rgb, rgb, rgb));
                }
            }
            pictureBox2.Image = bmp3;
            px_bw.Text = vivod(bmp3);//вывод координаты и цвет пикселя
        }
    }
}

Поделиться

2

Re: Как в XML документ добавить изображение

Полученные цвет и координаты вставляем в стили XML, как показано выше было. Может кому понадобится))))

Поделиться

3

Re: Как в XML документ добавить изображение

Поделиться