|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||||||
Работа с *.bmp изображением19.03.2025, 12:49. Показов 7034. Ответов 72
Метки нет (Все метки)
Сразу говорю, что знания паскаля хуже чем "пишу и читаю со словарём".
Задача считывать пиксели с *.bmp изображений. Максимальный размер изображения 320х240px. Но чувствую, что до этого мне ещё далеко. Поэтому попорядку.. Я нашёл в сети как вывести в поле Memo содержимое текстового файла. Проверил, работает:
Поэтому вопросы: 1. Какой элемент создать на форме для загрузки *.bmp для дальнейшего считывания пикселей? (предполагаю, что Image) 2. На что изменить в диалоге строчку "Memo1.Lines.LoadFromFile(FName);" для Image?
0
|
||||||
| 19.03.2025, 12:49 | |
|
Ответы с готовыми решениями:
72
Работа с изображением Работа с изображением Работа с изображением |
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,476
|
||
| 19.03.2025, 17:03 | ||
|
shonty, bmp 4 и 8 битный умеет в RLE.
Добавлено через 4 минуты При желании, можно и самому написать преобразование цветного в чб, как я, например. Только нужно ли в данном случае?
1
|
||
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||
| 19.03.2025, 17:12 [ТС] | ||
|
И у RLE вроде вывод с левого нижнего угла, строками и вверх.. А мне нужно с левого верхнего, столбцами вправо. Таковы настройки вывода изображения. Да вроде уже получается и в паскале. Чуть позже по математике наверное небольшой вопрос возникнет. У меня же просто последовательности байтовые. Вот к примеру цифры от 0 до 9 16x10px: Никаких заголовков, всё в подпрограммах обрабатывается..
0
|
||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 19.03.2025, 17:14 | |
|
1
|
|
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,476
|
||||
| 19.03.2025, 18:03 | ||||
|
И обычно да, в файле первой идёт самая нижняя строка. Но есть вариант (предусмотрено форматом), чтобы первым в файле шла верхняя строка изображения. Добавлено через 3 минуты
1
|
||||
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
|
| 20.03.2025, 17:26 [ТС] | |
|
Да и вообще RLE преобразовывать, оно же 32-х битное, а мне нужно для 8-ми битных контроллеров..
Проще оказалось свой формат замутить.. Ребят, всем благодарочка за помощь. Всё получилось. Слегка интерфейс только программе подправлю.. может быть , а может нет ))
0
|
|
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 20.03.2025, 17:52 | |
|
0
|
|
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||
| 20.03.2025, 18:02 [ТС] | ||
0
|
||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 20.03.2025, 18:05 | |
|
1
|
|
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,476
|
||
| 20.03.2025, 19:55 | ||
|
0
|
||
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||
| 20.03.2025, 20:31 [ТС] | ||
|
0
|
||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 20.03.2025, 21:09 | |
|
0
|
|
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||||||
| 21.03.2025, 15:45 [ТС] | ||||||
|
Ребят, подскажите ещё по такому вопросу:
Конвертация иногда проходит быстро, иногда занимает некоторое время, на глаз видно. Я сделал "строку сосояния" куда выводятся ошибки и т.п.. И вот когда конвертацию запускаю, то сообщение выводится только по окончании процесса. Как будто нет обновления формы. Можно это как то обойти?
0
|
||||||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 21.03.2025, 15:56 | |
|
0
|
|
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||
| 21.03.2025, 16:16 [ТС] | ||
|
0
|
||
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,476
|
||||
| 21.03.2025, 16:40 | ||||
|
Добавлено через 55 секунд
0
|
||||
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
|
| 21.03.2025, 16:44 [ТС] | |
|
0
|
|
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,476
|
||||||
| 21.03.2025, 16:52 | ||||||
|
Можно после обработки строки/присвоения
Label.Caption := выполнять
Но нужно предусмотреть защиту от повторного исполнения кода. Например, как поле добавить флаг, если он установлен, то выход из этого обработчика.
1
|
||||||
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
||||||||||||
| 21.03.2025, 17:05 [ТС] | ||||||||||||
|
Нагуглил такое "Form1.Update;":
Спасибо. Добавлено через 6 минут Методом научного тыка ![]()
0
|
||||||||||||
|
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 358
|
|
| 23.03.2025, 15:12 [ТС] | |
|
Пока паскаль не закрыл.. решил для 4-х и 8-ми цвЕтных изображений написать.
А то потом не заставлю себя его открыть ![]() Но только формат байта поменял. Сначала индекс цвета идёт, потом кол-во пикселей. Так удобнее обработку писать.
1
|
|
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 23.03.2025, 15:18 | |
|
0
|
|
| 23.03.2025, 15:18 | |
|
Помогаю со студенческими работами здесь
40
Работа с изображением Работа с изображением Работа с изображением
работа с изображением - открыть сохранить Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|