Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
1

Преобразование картинки в текстовый формат

17.01.2016, 19:33. Просмотров 654. Ответов 14
Метки нет (Все метки)

подскажите как преобразовать картинку скажем в JPEG или BMP в текстовой формат вот как здесь :
0
Миниатюры
Преобразование картинки в текстовый формат  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2016, 19:33
Ответы с готовыми решениями:

Формат single IBM float point преобразование в Csharp Single(float) формат
Возникла проблема с чтением данных в формате IBM float point. Пытался найти...

Преобразование даты в секундах в формат DateTime
Получаю дату через JSON в формате секунд {"time":1436862901} public...

Преобразование файла в формат XML путём сериализации
Добрый день, дано такое задание : мой код : public class Person {

Преобразование строки с html тегами в древовидный формат
Доброго времени суток, есть текстовый документ в котором записан html код в...

Как перевести байты в формат картинки?
У меня с потока заполняется буфер. Мне с него нужно собрать картинку, чтобы...

14
sldp
283 / 287 / 112
Регистрация: 29.10.2011
Сообщений: 957
Завершенные тесты: 2
18.01.2016, 12:54 2
Самый банальный способ. Думаю код сами напишите

1) Массивами проходимся по всем пикселям изображения Bitmap с помощью функции GetPixel(), которая вернет цвет пикселя.
2) Находим серый гредиент нашего цвета ( (R+G+B) / 3 ) и от него отталкиваемся. Например, если оттенок серого 0т 0 - 130 - Добавляем в стрингбилдер '.', если от 131-255, то '#'. Лучше сделать эти расчеты динамически исходя из количество символов.

Все. Главное не забыть добавить переход на новую строку в первом цикле
0
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
04.02.2016, 09:11  [ТС] 3
что-то не догоняю. если можно распишите код . и главное как это вывести отдельно в текстовый файл.
0
SeIZVeIZ
691 / 635 / 269
Регистрация: 08.02.2014
Сообщений: 1,961
Завершенные тесты: 3
04.02.2016, 09:33 4
Вам нужен алгоритм распознавания текста на примере нейронной сети. Как пример могу предложить этот либо этот проект.

Возможно более подходящим будет вот это решение на основе COM библиотеки Microsoft Office Document Imaging Library.
Но замечу 100% гарантии распознавания будет добиться сложно
0
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
04.02.2016, 18:34  [ТС] 5
неа. мне нужно преобразовать каждый пиксель поля картинки в его цифровой код и отфигашить в каком либо формате доступном для чтения. что-то типа как в формате xpm как на рисунке вверху. распознавать текст здесь вроде не причем. чувак с никнеймом sldp точно понял в чем суть вопроса тока я не въехал в суть ответа. я новичок в C#...
0
insite2012
Модератор
Эксперт .NET
4865 / 3818 / 1096
Регистрация: 12.10.2013
Сообщений: 11,095
Записей в блоге: 2
04.02.2016, 19:51 6
KotovichMX, примерно так, насколько я понял. Нужные символы сами в методе подствьте, ну и логику сравнения (диапазоны).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;
 
namespace ImageConverter {
    class Program {
        static void Main(string[] args) {
            Bitmap image = (Bitmap)Bitmap.FromFile(@"C:\Водяные лилии.jpg");
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < image.Width; i++) {
                
                for (int j = 0; j < image.Height; j++) {
                    Color c = image.GetPixel(i, j);
                    uint b = (uint)(((c.R * 0x10000) + (c.G * 0x100) + c.B) / 3);
                    AddSymbol(sb, b);
                }
                sb.Append("\r\n");
            }
            File.WriteAllText(@"C:\Test.txt", sb.ToString());
            Console.ReadLine();
        }
        static void AddSymbol(StringBuilder sb, uint color) {
            if (color == 0xffffff) {
                sb.Append("`");
            }
            else if (color == 0x000000) {
                sb.Append("a");
            }
            else if (color > 0x000000 && color < 0x0000ff) {
                sb.Append("b");
            }
            else if (color >= 0x0000ff && color < 0x00ffff) {
                sb.Append(".");
            }
            else if (color >= 0x00ffff && color < 0xffffff) {
                sb.Append("#");
            }
            else {
                sb.Append("c");
            }
        }
    }
}
0
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
06.02.2016, 04:46  [ТС] 7
а можно поподробнее.
0
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
27.10.2017, 21:37  [ТС] 8
dast ist oblomaitung!
0
Миниатюры
Преобразование картинки в текстовый формат  
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
27.10.2017, 21:43  [ТС] 9
похоже проблема в нижней секции но не доганяю где именно
подскажите плиз
C#
1
2
else if (color >= 0x00ffff && color < 0xffffff) {
                sb.Append("#");
0
Nalik
108 / 65 / 34
Регистрация: 30.11.2012
Сообщений: 848
27.10.2017, 23:28 10
Посмотрите эту тему и доработайте код под себя
Как разбить изображение на пиксели
1
Nalik
108 / 65 / 34
Регистрация: 30.11.2012
Сообщений: 848
27.10.2017, 23:41 11
Но если тебе не важны значения в файле, а просто нужно преобразовать изображение в строковое значение с возможностью конвертировать обратно, то вот так:

C#
1
2
3
4
5
6
7
8
9
10
//Конвертируем изображение в строку
            MemoryStream Memostr = new MemoryStream();
            Image Img = Image.FromFile(textBox1.Text);
            Img.Save(Memostr, Img.RawFormat);
            byte[] arrayimg = Memostr.ToArray();
            StreamWriter sw = new StreamWriter("image.txt");
            sw.Write(Convert.ToBase64String(arrayimg));
            sw.Close();
 
            Process.Start("image.txt");
C#
1
2
3
4
5
6
7
//Конвертируем строку в изображение
            StreamReader sr = new StreamReader(textBox2.Text);
            byte[] arrayimg = Convert.FromBase64String(sr.ReadToEnd());
            sr.Close();
            Image imageStr = Image.FromStream(new MemoryStream(arrayimg));
            imageStr.Save("image.png");
            Process.Start("image.png");
Источник

Протестировал - работает, прикладываю проект.
1
Вложения
Тип файла: rar BitmapToText.rar (90.0 Кб, 7 просмотров)
Usaga
28.10.2017, 07:05
  #12

Не по теме:

KotovichMX, оно вам точно нужно? Вы за полтора года не смогли это решить. Программирование не ваше вообще.

0
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
28.10.2017, 08:11  [ТС] 13
это работает но очень медленно. я мечтаю получить процесс длительностью не более одной секунды . как этого добиться подскажите пожалуйста.

Добавлено через 1 минуту
Usaga, Добавлено через 3 минуты
это всё что ты знаешь? как по-моему твоё это путаться под ногами полтора года.
0
Usaga
28.10.2017, 10:25
  #14

Не по теме:

KotovichMX, я вам активно пытался помочь (помочь понять как сделать, а не делать за вас), если не забыли. Но толку это особо не дало, как видно. Знать-то я много чего знаю. :)

0
KotovichMX
-32 / 2 / 1
Регистрация: 19.07.2011
Сообщений: 625
28.10.2017, 19:26  [ТС] 15
ладно прошу прощенья за столь резкий ответ. я был не прав конечно . нервы.
0
28.10.2017, 19:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2017, 19:26

Конвертер любой картинки в формат ico
Здравствуйте, пишу конверт из любой картинки в ico использую такой код ...

Организуйте ввод чисел в 10-ой системе счисления и преобразование их в формат с фиксированной запятой
Очень нужна помощь, умоляю помогите!!! не оставьте в беде.... Одна надежда...

Преобразование картинки в текст
Вопрос очень странный, и я не уверен, что смогу получить на него ответ. Может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru