1 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 33

Canvas.Pixels[X,Y] := -1 What?

27.01.2016, 13:12. Показов 1362. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Короче, качаю капчу с популярного интернет-ресурса..
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      try
        HTTP.Get(URL, ResStream);
        ResStream.Position := 0;
      except
      end;
      if HTTP.ResponseCode = 200 then
        begin
          JPEG.LoadFromStream(ResStream);
          CaptchaBMP.Assign(JPEG);
          for X := 0 to CaptchaBMP.Width - 1 do
            for Y := 0 to CaptchaBMP.Height - 1 do
              AppForm.Memo1.Lines.Add(IntToStr(CaptchaBMP.Canvas.Pixels[X, Y]));
          Resultate := GoodR;
        end
      else
        Resultate := ErrorR;
Результат выглядит так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16381942
16381942
16381942
16381942
{Всегда разное место... Далее все -1, хотя там присутствуют цветные пиксели}
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
Что за фигня? Также получается, если получать RGB через GETRValue и т.п. И всегда почему-то в разном месте. Картинки сохраняю.. Выглядят обычно. Прозрачность у всех пикселей 255, если смотреть в редакторе.. Все пиксели на картинке имеют равные RGB, т.е. картинка черно-белая. В цикле после момента, когда появляется первая -1 еще есть уйма серых и черных пикселей. Почему их всех кидает в -1?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.01.2016, 13:12
Ответы с готовыми решениями:

Что возвращает метод Kapcha.Canvas.Pixels[0,0]?
Я так думаю должна возвращать данные в RGB ? Через showmessage попробовал посмотреть не те цифры, не того цвета, в paint. net посмотрел...

MetafileCanvas и Pixels, странная работа
Добрый день уважаемые форумчане. Возник вопрос по работе Pixels. На PaintBox все работает нормально и цвет присваивает ...

построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)
Надо построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)

4
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,670
Записей в блоге: 21
27.01.2016, 13:52
ключевой момент - IntToStr
для примера напиши себе строчку
showMessage(IntToStr($FFFFFFFF));

вторая идея
так же в цикле попиксельно нарисуй на другой бмп то что кладешь сейчас в мемо
0
1 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 33
27.01.2016, 16:02  [ТС]
Пробовал.. И так и так.. Одно и то же..
Если заменить
Delphi
1
2
3
for X := 0 to CaptchaBMP.Width - 1 do
 for Y := 0 to CaptchaBMP.Height - 1 do
  AppForm.Memo1.Lines.Add(IntToStr(BMP2.Canvas.Pixels[X, Y]));
на
Delphi
1
2
3
for X := 0 to CaptchaBMP.Width - 1 do
 for Y := 0 to CaptchaBMP.Height - 1 do
  AppForm.Memo1.Lines.Add(IntToStr($FFFFFFFF));
все проходит отлично..
BMP прировнял так..
Delphi
1
2
3
for X := 0 to CaptchaBMP.Width - 1 do
            for Y := 0 to CaptchaBMP.Height - 1 do
              BMP2.Canvas.Pixels[X,Y] := CaptchaBMP.Canvas.Pixels[X,Y];
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
27.01.2016, 23:04
Что вы вообще хотите получить? И что сейчас не так?

Добавлено через 1 минуту
Цитата Сообщение от darkwellroad Посмотреть сообщение
CaptchaBMP.Canvas.Pixels[X,Y];
Лучше тогда уж в PNG хранить и брать как CaptchaPNG.Pixels[X,Y]
Цитата Сообщение от darkwellroad Посмотреть сообщение
IntToStr(
'#'+IntToHex( _ , 8)

Добавлено через 3 часа 21 минуту
После того как битмапу делали ".Assign( _ );" надо обязательно устанавливать ".PixelFormat:=pf24bit;".
0
1 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 33
28.01.2016, 13:49  [ТС]
Цитата Сообщение от BOGG ART Посмотреть сообщение
Что вы вообще хотите получить? И что сейчас не так?

Добавлено через 1 минуту

Лучше тогда уж в PNG хранить и брать как CaptchaPNG.Pixels[X,Y]

'#'+IntToHex( _ , 8)

Добавлено через 3 часа 21 минуту
После того как битмапу делали ".Assign( _ );" надо обязательно устанавливать ".PixelFormat:=pf24bit;".
Огромное спасибо.. PNG решило проблему... Но в чем проблема была - так и не получилось узнать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2016, 13:49
Помогаю со студенческими работами здесь

Canvas
Привет. Можете подсказать где можно научится "канвасить" на компонентах и форме в Delphi?

Canvas
Вопрос в следующем. Для формы прописаны свойства Canvas (рисование, раскрашивание). Можно ля для данной формы сделать фоновую картинку...

Canvas->Pixels и OpenGL
В С++ очень медленно работает функция: Image1->Canvas->Pixels и некоторые другие. Есть ли смысл что-то делать на OpenGL для ускорения...

несколько вопросов по "Canvas.Pixels"
пишу терминалку для обслуживания небольшой камеры. Байты принимаются по RS232 пока что на 19200 бпс (хочется больше). Пакет байтов...

извлечь координаты из pixels
есть например код: Image1.Canvas.Pixels:=121211; а как присвоить какой нибудь целочисленной переменной эти самые координаты? которые в...


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

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

Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru