Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_8.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
392.7 Кб
Скачать

Файл TextHider.Cs

using System.Drawing;

namespace HideMe

{

static class TextHider

{

public static void HideText(string t, string pathToBmp, string pathToResult, int bits)

{

var text = new Text(t);

var bmp = new Bitmap(pathToBmp);

int index = 0;

for (int y = 0; y < bmp.Height; y++)

{

for (int x = 0; x < bmp.Width; x++)

{

Color pixel = bmp.GetPixel(x, y);

int colorGray = (int)(pixel.R * 0.299 + pixel.G * 0.587 + pixel.B * 0.114);//Перетворення в сірий

pixel = Color.FromArgb(colorGray, colorGray, colorGray); //Перетворення в сірий

Color newPixel = HideBits(text.GetBits(index, 3 * bits), pixel);

index += 3*bits;

bmp.SetPixel(x, y, newPixel);

}

}

bmp.Save(pathToResult);

}

private static Color HideBits(bool[] bits, Color c)

{

int n = bits.Length/3;

byte[] rgb = new[] {c.R, c.G, c.B};

int index = 0;

for (int i = 0; i < rgb.Length; i++)

{

for (int j = 0; j < n; j++)

{

rgb[i] = SetBit(rgb[i], bits[index], j);

index++;

}

}

return Color.FromArgb(rgb[0], rgb[1], rgb[2]);

}

private static byte SetBit(byte b, bool bit, int index)

{

byte mask = 1;

mask <<= index;

if (bit)

{

b |= mask;

}

else

{

b &= (byte)~mask;

}

return b;

}

}

}

5.Результат виконання програми

Рис. 1. Кодування зображення.

Рис. 2. Розкодування зображення.

6.Висновок

В даній лабораторній роботі я ознайомилася із статичними зображеннями і методами їх обробки, а також можливостями використання графічних файлів для стеганографії. Була реалізована программа для стеганографії. Як бачимо із результатів виконання програми графічні файли можна застосувати для стенографії без значних втрат якості зображення.

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]