Из коробки вы можете загрузить несколько различных форматов изображений с Delphi (BMP, JPG, PNG, GIF, я думаю, и в наши дни).Тогда есть множество сторонних опций, доступных для поддержки других типов изображений.
Как только вы загрузите изображение в память, проще всего будет преобразовать его в Tbitmap.Есть несколько способов сделать это тоже.Но так как вы хотите возиться с пикселями, тогда я бы создал Tbitmap и установил его формат пикселей на 24 бита, тогда я бы нарисовал ваше загруженное изображение на холсте Tbitmap.
bmp.Width:=sourecimage.Width;
bmp.Height:=sourceimage.Height;
bmp.PixelFormat:=pf24bit;
bmp.Canvas.Draw(0,0,sourceimage);
Хотя это может и не произойтибыть наиболее эффективным способом сделать это, он получает изображение в памяти известного формата, и вам нужно беспокоиться только об одном способе его использования, а не о кодировании для различных форматов.
Теперь у вас есть 2опции для доступа к информации об изображении: - Свойство Pixels (которое очень медленно, но легко понять) - Свойство Scanlines (которое быстро, но немного сложнее в использовании)
Оба позволят вам перебирать всепиксели на изображении и определяют их цвет.
Теперь, когда у вас есть пиксели, вам нужно разобраться, что определяет пиксель как «ВКЛ», а что определяет пиксель как «ВЫКЛ».Для этого, я думаю, вам нужно будет выбрать цвет для представления пикселя «OFF» (например, белый - $ FFFFFF), поэтому, если пиксель этого цвета, он выключен, в противном случае он включен.
Немного трудно идти дальше, не зная слишком много о том, чего вы действительно пытаетесь достичь.Вам нужна производительность или простота?Вы действительно нуждаетесь в собственной структуре или достаточно хороших только растровых данных (фактически двумерный массив).
И важное замечание.Использование файла JPG не годится.JPG использует приблизительные цвета, и я не знаю, каким образом вы можете гарантировать, какой цвет будет загружен после сжатия / распаковки изображения.Хотя ваши «выключенные» пиксели могут быть «почти белыми», нет гарантии, что они будут «точно белыми».