Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
 Аватар для vadim23409
6 / 6 / 2
Регистрация: 24.09.2012
Сообщений: 381

Разбор каждого пикселя с файлов Jpeg, bmp, gif, png

29.08.2014, 01:19. Показов 4890. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, вот такая задача: есть структура и массив:
Delphi
1
2
3
4
5
6
7
  Dpixel= packed record
     R:byte;
     G:byte;
     B:byte;
     A:byte;
   end;
var picture: array of array of Dpixel;
(изображение = 2-мерный массив Dpixel-ов, каждый Dpixel - это 256 разных значений красного, зелёного, синего цветов и 256 значений прозрачности (alpha) для PNG формата. Файлы Jpeg, bmp и gif можно просто открыть в image (да и не только, просто создать Tbitmap и загрузить в него картинку с файла) и каждый пиксель перенести в мой массив. Но как быть с PNG с альфа-каналом? В Timage оно открывает, но вместо фона чёрный цвет пускает и значения прозрачности пропадает(
(Тема была в разделе delphi и firemonkey, но там на нее не очень активно отвечали, +реализация задачи не очень то и привязана к firemonkey)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2014, 01:19
Ответы с готовыми решениями:

Resize JPEG, BMP, GIF, PNG --> JPEG
Доброго дня! Стала задача сделать ресайзер. Требования: картинка по соотношению вес/качество должна примерно соответствовать...

Написать консольный конвертер из .jpeg и .bmp в .png
Здравствуйте дорогие Форумчане :) Есть задание - написать консольный конвертер, который будет находящиеся с ними .jpeg и .bmp...

программа, работающая с файлами хтмл, док, jpeg, png,gif
Нужно написать программу, которая являлась бы хранилищем базы данных. Сама база представлена множеством папок с картинками и сохраненными...

4
 Аватар для vadim23409
6 / 6 / 2
Регистрация: 24.09.2012
Сообщений: 381
31.08.2014, 01:24  [ТС]
Даже если залить png в TPNGImage, то альфа канал можно достать через alphascanline, но я и с обычным scanline не разобрался(
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
31.08.2014, 02:19
Цитата Сообщение от vadim23409 Посмотреть сообщение
Здравствуйте, вот такая задача: есть структура и массив:
Структуру и массив вижу. Задачу не вижу/не понимаю как не стараюсь. Очевидно мой телепатор сломался.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
31.08.2014, 16:35
Лучший ответ Сообщение было отмечено vadim23409 как решение

Решение

вот таким макаром можно получить RGB и А в придачу, в ваш массив о информации пикселей занесете сами все.

Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
var Color: TColor;
    r, g, b, a: Byte;
    PNG: TPngImage;
    ByteAr: pByteArray;
    x, y: Integer;
begin
 
  PNG := TPngImage.Create;
  PNG.LoadFromFile('D:\Bilder\Icons\10\24\add.png');
 
  x := 8;
  y := 0;
 
  Color := PNG.Pixels[x, y];
  ByteAr := PNG.AlphaScanline[y];
 
  r := Color shr 0;
  g := Color shr 8;
  b := Color shr 16;
 
  a := ByteAr[x];
 
  Button1.Caption := 'Пиксель [' + IntToStr(x) + ' : ' + IntToStr(y) + '] -> r = ' + IntToStr(r) +
                     ', g = ' + IntToStr(g) + ', b = ' + IntToStr(b) + ', a = ' + IntToStr(a);
 
  PNG.Free;
end;
на скрине видно как моя программа определила все по заданному пикселю и как это являлось на самом деле в графическом редакторе

если конечно это имелось ввиду
Миниатюры
Разбор каждого пикселя с файлов Jpeg, bmp, gif, png  
1
 Аватар для vadim23409
6 / 6 / 2
Регистрация: 24.09.2012
Сообщений: 381
31.08.2014, 23:31  [ТС]
спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2014, 23:31
Помогаю со студенческими работами здесь

Сохранение изображений в формате png, gif, jpg, bmp
Сохраняя изображение из PictureBox в файл мы получаем несжатый битовый образ независимо от того какое расширение файла указываем. ...

Использование, управление AVI, SWF, JPEG, BMP, PSD, PNG, TGA
Доброго всем дня / ночи! Название темы говорит само за себя ) Но я поясню, что требуеться! Итак, есть ряд "картинок"...

Как узнать свойства Jpeg, gif, png и т.д. файла, такие как высота, ширина и т.п
Привет всем, вот вопросик у меня. Как узнать свойства Jpeg, gif, png и т.д. файла, такие как высота, ширина и т.п., не загружая в...

Скопировать имеющиеся в каталоге Windows и его подкаталогах растровые графические файлы (имеющие расширения .bmp, .jpg, .gif, .png) в каталог WinGr
Подскажите идею? Знаю как найти эти файлы в каталоге и его подкаталогах. А как эти найденные скопировать???

Открытие файлов jpg, png и gif
Как реализовать на C++ открытие файлов jpg, png и gif через CFileDialog и их отображение в специальной области в главном диалоговом окне...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru