Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2014, 16:26   #1
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию Как декодировать Капча Base64

Всем привет! Сайт выдает капчу data:image/jpeg;base64, как ее декодировать. Нафоруме нашел пример но получаю JPEG error 53


Код:
uses EncdDecd,jpeg;
 
procedure TForm1.Button2Click(Sender: TObject);
var
st,st2:TMemoryStream;
jpg:tjpegimage;
s:string;
begin
st:=TMemorystream.Create;
st2:=TMemorystream.Create;
jpg:=tjpegimage.create;
s:=memo1.Text;
st.WriteBuffer(s[1],Length(s)*SizeOf(Char));
st.Position:=0;
DecodeStream(st,st2);
st2.Position:=0;
jpg.loadfromstream(st2);
image1.picture.assign(jpg);
st.Free;
st2.Free;
jpg.free;
end;
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 04.10.2014, 18:19   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от Smagulov85 Посмотреть сообщение
Сайт выдает капчу data:image/jpeg;base64, как ее декодировать.
Сдается мне, что эту "data:image/jpeg;base64" нужно обрезать перед передачей в функцию раскодировки.
Vapaamies вне форума Ответить с цитированием
Старый 04.10.2014, 18:27   #3
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Сдается мне, что эту "data:image/jpeg;base64" нужно обрезать перед передачей в функцию раскодировки.
обрезал все равно ошибка!
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 04.10.2014, 19:21   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Попробуй сохранить обрезанное и раскодированное во временный файл и открыть любой доступной программой с поддержкой JPEG -- хоть Paint, хоть Photoshop. Ошибка #53 говорит о том, что файл битый.
Vapaamies вне форума Ответить с цитированием
Старый 04.10.2014, 19:32   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

покажи текст, в кором хранится капча.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.10.2014, 21:40   #6
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Вот прикрепил к посту!!
Вложения
Тип файла: txt 1.txt (7.3 Кб, 147 просмотров)
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 04.10.2014, 22:09   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Когда отбросил "data:image/jpeg;base64," и скормил сайту http://www.motobit.com/util/base64-decoder-encoder.asp, то получил нормально открывающийся JPEG.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.10.2014, 22:10   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

В файле, что ты дал, действительно jpeg-картинка. Декодил онлайн вот тут.
Если тебе это надо делать в своей программе, прицепляю модуль с функциями, спираченный где-то в интернетах лет 100500 назад.
Изображения
Тип файла: jpg 69ca94ce-20ef-4c5b-b03a-4cad15568246.jpg (5.4 Кб, 138 просмотров)
Вложения
Тип файла: txt 2.txt (7.3 Кб, 158 просмотров)
Тип файла: rar base64.rar (1.5 Кб, 36 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 04.10.2014 в 22:14.
min@y™ вне форума Ответить с цитированием
Старый 04.10.2014, 23:13   #9
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 161
По умолчанию

В delphi в юните EncdDecd есть функция DecodeBase64, декодируется примерно так:
Код:
uses ...EncdDecd;
var
  ts:TStringstream; 
  b:TBytes;
  bs:TBytesStream;
  ms:TMemorystream;
  jpg:TJpegimage;

      ...
{тут инициализации переменных и пр. я пропустил}
     ...
{Здесь в переменной TS должна хранится строка в base64}
	b:=DecodeBase64(ts.DataString); 
	bs:=TBytesStream.Create(b);
	bs.SaveToStream(ms);
	jpg.LoadFromStream(ms);
     ..
думаю тебе она и нужна
DIONISKA вне форума Ответить с цитированием
Старый 04.10.2014, 23:32   #10
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
В файле, что ты дал, действительно jpeg-картинка. Декодил онлайн вот тут.
Если тебе это надо делать в своей программе, прицепляю модуль с функциями, спираченный где-то в интернетах лет 100500 назад.
Этот файл у меня есть уже лет так +100500
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Декодировать koi-7, как? FleXik Общие вопросы Delphi 12 30.03.2014 02:13
Кодировать изображение Base64 и отправить как строку. Человек_Борща Общие вопросы Delphi 0 09.01.2014 12:30
Декодировать изображение Motaro44 Помощь студентам 2 20.06.2011 10:38
Http.Get, Парсинг UTF8, знак - отображается как ? Как декодировать? XerSon Работа с сетью в Delphi 6 10.02.2011 08:37
IdPOP3 как декодировать base64 в теле письма jskorvin Работа с сетью в Delphi 2 10.11.2010 17:32