private void button3_Click(object sender, EventArgs e) {//Шифруем текст в файл
string textDecode = textBox2.Text;
byte[] bytes = Encoding.UTF8.GetBytes(textDecode);
int wh = (int) Math.Ceiling(Math.Sqrt(Math.Ceiling((double) ((bytes.Length + 4)/3))));//Определяем размер изображения для шифрования, + 4 (4 байта для резервируем в начале для записи размера массива bytes), делим на три потому что RGB, тоесть в 1 пиксель может 3 байта всунуть
Bitmap img = new Bitmap(wh,wh);
byte[] length = BitConverter.GetBytes(bytes.Length);
//пишем длинну массива
img.SetPixel(0,0,Color.FromArgb(length[0], length[1], length[2]));
img.SetPixel(1,0,Color.FromArgb(length[3], 0,0));
//пишем шифрованный текст
int cur = 0;
for (int y = 0; y < img.Height; y++) {
for (int x = 0; x < img.Width && cur < bytes.Length; x++) {
if (y == 0 && x == 0) {
x = 1;
continue;
}
byte[] pixels = new byte[]{0,0,0};
for (int k = 0; k < 3 && cur < bytes.Length; k++)
pixels[k] = bytes[cur++];
img.SetPixel(x,y,Color.FromArgb(pixels[0], pixels[1], pixels[2]));
}
}
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "Image Files (*.png, *.jpg) | *.png; *.jpg";
saveFile.InitialDirectory = @"C:\";
if (saveFile.ShowDialog() == DialogResult.OK) {
textBox1.Text = saveFile.FileName.ToString();
img.Save(textBox1.Text);
pictureBox1.ImageLocation = textBox1.Text;
}
}
private void button2_Click(object sender, EventArgs e) {//Дешифруем текст из файла
if (pictureBox1.Image == null) {
MessageBox.Show("Изображение не выбрано");
return;
}
Bitmap img = new Bitmap(pictureBox1.Image);
int length = BitConverter.ToInt32(new byte[] {//Получаем длинну массива
img.GetPixel(0,0).R,
img.GetPixel(0,0).G,
img.GetPixel(0,0).B,
img.GetPixel(1,0).R
},0);
byte[] textBytes = new byte[length];
//читаем шифрованный текст
int cur = 0;
for (int y = 0; y < img.Height; y++) {
for (int x = 0; x < img.Width && cur < textBytes.Length; x++) {
if (y == 0 && x == 0) {
x = 1;
continue;
}
for (int k = 0; k < 3 && cur < textBytes.Length; k++)
textBytes[cur++] = (new byte[] {img.GetPixel(x, y).R, img.GetPixel(x, y).G, img.GetPixel(x, y).B}[k]);
}
}
string text = Encoding.UTF8.GetString(textBytes);
textBox2.Text = text;
}
// https://toster.ru/q/480543
add_filter( 'the_content', 'my_custom_content_filter' );
function my_custom_content_filter( $content ) {
$search = "После этого текста добавить код";
$code = "ваш_код";
$result = $search . " " . $code;
$content = str_replace($search, $result, $content);
return $content;
}
function aftermore2($content) {
$ads = (function_exists('the_ratings')) ? the_ratings();
$content=preg_replace('#<span.*?id="more-(.*?)".*?></span>#','<span id="more-\1"></span><center>'.$ads.'</center>',$content);
return $content;
}
add_filter('the_content', 'aftermoreads');
function add_async_attribute( $tag, $handle ) {
if ( 'my-js-handle' !== $handle ) {
return $tag;
}
return str_replace( ' src', ' async="async" src', $tag );
}
add_filter('script_loader_tag', 'add_async_attribute', 10, 2);
function add_async_attribute( $tag, $handle ) {
// handles скриптов, которым нужен атрибут async
$scripts_to_async = array(
'my-js-handle',
'another-handle',
);
foreach( $scripts_to_async as $async_script ) {
if ( $async_script === $handle ) {
return str_replace( ' src', ' async="async" src', $tag );
}
}
return $tag;
}
add_filter( 'script_loader_tag', 'add_async_attribute', 10, 2 );