示例#1
0
        internal virtual void converttobitmap(string filename, int mask, int outline1, int outline2, int shadow, string samp)
        {
            Aokbitmap b = new Aokbitmap(mask, outline1, outline2, shadow);

            b.sample = samp;
            b.Write(filename, this.picture, this.width, this.height);
        }
示例#2
0
        public void Writemasks(String inputfile, String outputfile, int choice)
        {
            int          i3, i2, i1, n, m, j, k;
            imagehandler img = new imagehandler();

            img.loadbitmap(inputfile, 0);
            byte[][] f      = img.returnrawpixels();
            int      width  = (f[0]).Length;
            int      height = f.Length;


            int[][] newframe = RectangularArrays.RectangularIntArray(height, width);
            for (int i = 0; i < height; i++)
            {
                for (int i4 = 0; i4 < width; i4++)
                {
                    newframe[i][i4] = f[i][i4] & 0xFF;
                }
            }
            int mask = newframe[height - 1][0];

            switch (choice)
            {
            case 1:
                for (i3 = 0; i3 < height; i3++)
                {
                    for (int i4 = 0; i4 < width; i4++)
                    {
                        if (newframe[i3][i4] == mask)
                        {
                            newframe[i3][i4] = this.outputmask;
                        }
                        else
                        {
                            newframe[i3][i4] = 255;
                        }
                    }
                }
                break;

            case 2:
                for (i3 = 0; i3 < height; i3++)
                {
                    int i4;
                    for (i4 = 0; i4 < width - 1; i4++)
                    {
                        if (newframe[i3][i4] == mask && newframe[i3][i4 + 1] != mask && i4 + 1 != width - 1)
                        {
                            newframe[i3][i4] = -2;
                        }
                    }

                    for (i4 = width - 1; i4 > 0; i4--)
                    {
                        if (newframe[i3][i4] == mask && newframe[i3][i4 - 1] != mask && i4 + 1 != width - 1)
                        {
                            newframe[i3][i4] = -2;
                        }
                    }
                }
                for (i2 = 0; i2 < width; i2++)
                {
                    int i4;
                    for (i4 = 0; i4 <= height - 2; i4++)
                    {
                        if (newframe[i4][i2] == mask && newframe[i4 + 1][i2] != mask && newframe[i4 + 1][i2] != -2)
                        {
                            newframe[i4][i2] = -2;
                        }
                    }
                    for (i4 = height - 1; i4 > 0; i4--)
                    {
                        if (newframe[i4][i2] == mask && newframe[i4 - 1][i2] != mask && newframe[i4 - 1][i2] != -2)
                        {
                            newframe[i4][i2] = -2;
                        }
                    }
                }
                for (i1 = 0; i1 < height; i1++)
                {
                    for (int i4 = 0; i4 < width; i4++)
                    {
                        if (newframe[i1][i4] != -2)
                        {
                            newframe[i1][i4] = this.outputmask;
                        }
                    }
                }
                break;

            case 3:
                for (i1 = 0; i1 < height; i1++)
                {
                    for (int i4 = 0; i4 < width; i4++)
                    {
                        if (newframe[i1][i4] < 16 || newframe[i1][i4] > 23)
                        {
                            newframe[i1][i4] = this.outputmask;
                        }
                    }
                }
                break;

            case 4:
                for (i1 = 0; i1 < height; i1++)
                {
                    for (int i4 = 0; i4 < width; i4++)
                    {
                        if (newframe[i1][i4] == 131)
                        {
                            newframe[i1][i4] = 131;
                        }
                        else
                        {
                            newframe[i1][i4] = this.outputmask;
                        }
                    }
                }
                break;

            case 5:
                for (i1 = 0; i1 < height; i1++)
                {
                    int i4;
                    for (i4 = 0; i4 < width - 1; i4++)
                    {
                        if (newframe[i1][i4] == mask && newframe[i1][i4 + 1] != mask && i4 + 1 != width - 1)
                        {
                            newframe[i1][i4] = -2;
                        }
                    }
                    for (i4 = width - 1; i4 > 0; i4--)
                    {
                        if (newframe[i1][i4] == mask && newframe[i1][i4 - 1] != mask && i4 + 1 != width - 1)
                        {
                            newframe[i1][i4] = -2;
                        }
                    }
                }
                for (n = 0; n < width; n++)
                {
                    int i4;
                    for (i4 = 0; i4 <= height - 2; i4++)
                    {
                        if (newframe[i4][n] == mask && newframe[i4 + 1][n] != mask && newframe[i4 + 1][n] != -2)
                        {
                            newframe[i4][n] = -2;
                        }
                    }

                    for (i4 = height - 2; i4 > 0; i4--)
                    {
                        if (newframe[i4][n] == mask && newframe[i4 - 1][n] != mask && newframe[i4 - 1][n] != -2)
                        {
                            newframe[i4][n] = -2;
                        }
                    }
                }
                for (m = 0; m < height; m++)
                {
                    int i4;
                    for (i4 = 0; i4 < width - 1; i4++)
                    {
                        if (newframe[m][i4] == mask && newframe[m][i4 + 1] != mask && i4 + 1 != width - 1)
                        {
                            newframe[m][i4] = -3;
                        }
                    }
                    for (i4 = width - 1; i4 > 0; i4--)
                    {
                        if (newframe[m][i4] == mask && newframe[m][i4 - 1] != mask && i4 + 1 != width - 1)
                        {
                            newframe[m][i4] = -3;
                        }
                    }
                }
                for (j = 0; j < width; j++)
                {
                    int i4;
                    for (i4 = 0; i4 <= height - 2; i4++)
                    {
                        if (newframe[i4][j] == mask && newframe[i4 + 1][j] != mask && newframe[i4 + 1][j] != -3)
                        {
                            newframe[i4][j] = -3;
                        }
                    }

                    for (i4 = height - 2; i4 > 0; i4--)
                    {
                        if (newframe[i4][j] == mask && newframe[i4 - 1][j] != mask && newframe[i4 - 1][j] != -3)
                        {
                            newframe[i4][j] = -3;
                        }
                    }
                }
                for (k = 0; k < height; k++)
                {
                    for (int i4 = 0; i4 < width; i4++)
                    {
                        if (newframe[k][i4] != -3)
                        {
                            newframe[k][i4] = this.outputmask;
                        }
                    }
                }
                break;

            default:
                Console.WriteLine("Unrecognized command");
                break;
            }
            Aokbitmap b = new Aokbitmap(this.outputmask, this.outline1, this.outline2, this.shadow);

            b.Write(outputfile, newframe, f[0].Length, f.Length);
        }