|
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 11
|
||||||||||||||||
Переменная не "читается" методом24.01.2017, 20:19. Показов 761. Ответов 4
Здравствуйте! Я пишу программу, работающую с bmp. В программе есть несколько классов: класс imageMain содержит меню, a класс imageIO содержит несколько методов. Последовательность действий пользователя следующая: пользователь открывает изображение и обрабатывает его. Затем, после нажатия клавиши <Сохранить> (листинг №1, строки 58-63), должно происходить сохранение изображения методом saveImage (класс imageIO) (листинг №2, строки 60-96), однако сохранения не происходит. Возможно проблема в переменной testImage которая либо не передается методу, либо не обрабатывается верно, либо что-то ещё. Возможно проблема связана с т.н. "замыканиями". Однако, я могу ошибаться т.к. я только изучаю Java. Подскажите пожалуйста направление в котором «копать». Буду благодарен за любую помощь.
Понимаю, что в таком коде сложно разобраться. Поэтому написал вот такую программу, чтобы тонны кода не отвлекали от основного вопроса: Необходимо передать методу многомерный массив. Комментарии с уточнениями по ходу кода.
0
|
||||||||||||||||
| 24.01.2017, 20:19 | |
|
Ответы с готовыми решениями:
4
Не читается переменная в запросе |
|
Автоматизируй это!
|
||||||
| 25.01.2017, 21:22 | ||||||
|
Действительно замыкание!
1. Если ты новичок, то почему не начать с программ попроще? 2. Понятно что ты повырезал кода, но я подозреваю что проблема в области видимости, переменная testImage из 24 строки и из строки 44 это разные объекты. Подозреваю что ты обрабатываешь все в одной переменной и передаешь на сохранение другую компилятор у тебя потребовал? серьезно? вот передаю многомерный массив без проблем
0
|
||||||
|
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 11
|
|
| 26.01.2017, 21:42 [ТС] | |
|
Да вы правы, что "Не по Сеньке шапка".
Однако, пока интерес не остыл, тем более проблема выглядит не сложно. Строка 24 - это была моя инициатива. Компилятор писал "testImage cannot be resolved to a variable". Одним из "быстрых решений" предложенных им было объявить переменную, вот я и... (объявил массив нулевой размерности. зачем? ) В строке 44 "int[][][] testImage = imageIO.loadImage(path[0]);" в 3D массив записываются данные, полученные из класса imageIO методом loadImage. (Если вкратце, то там происходит следующее: в переменную img загружается битмап utils.loadbitmap по "адресу" path[0], далее отсекается заголовок и все лишнее, и остаются только битовые данные. Определяется их размер т.к. он изначально не известен и записывается в переменную (массив imgBitmap), которую возвращает метод). Далее в многомерный (и многострадальный) массив testImage наконец эти битовые данные и перезаписываются. По идее они и должны были быть там, если бы не сборщик мусора. А массив testImage (в классе Мейн) получается вроде как динамический т.к. данные изначально записывались в динамический массив imgBitmap, который и возвращает метод loadImage (из класса imageIO). Статический то, я бы осилил. И самая проблемная - 61-ая строчка, которую не читается "imageIO.saveImage(testImage);". В ней просто передаем методу saveImage в класс imageIO наш массив testImage. Может подскажете, с учетом вышеизложенного, что-нибудь, хотя-бы в виде алгоритма (если фрагменты кода приложите, то только +). Возможно ли как-то решить эту задачу с помощью указателей на объект. (и как быть если массив динамический) Заранее благодарен.
0
|
|
|
Автоматизируй это!
|
||
| 27.01.2017, 20:43 | ||
|
Единственный вариант и сразу полезный скилл -использовать дебаг, ставит брекпоинты и отслеживать значения переменных, где то ты их теряешь. Мое предположение все еще в силе -ты используешь разные объекты при работе и сохранении. Не по теме: Если бы ты бокс решил осваивать то сразу бы попер с разрядниками спарринговать или может полгодика по груше поработать и лапам?
1
|
||
|
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 11
|
|
| 27.01.2017, 20:59 [ТС] | |
|
Спасибо, я понял.
0
|
|
| 27.01.2017, 20:59 | |
|
Помогаю со студенческими работами здесь
5
Глобальная переменная не читается в новом потоке
Не передается переменная методом POST Не передается переменная методом POST
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|