![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте,подскажите как сделать чтобы программа присваивала значение пикселя с картинки в ячейку программы?картинка в формате bmp(самый простой вариант на мой взгляд),надо чтоб прога брала 1 пиксель картинки и заносила инфу о цвете в 1 ячейку,потом 2 пиксель во 2 ячейку и так далее.
|
#2
|
|||
|
|||
![]() По простому - что-то типа:
Код:
var I, J : Integer; A : Array Of Array DWORD; begin setLength(A,Bitmap.Width,Bitmap.Height); For I := 0 To ABitmap.Width-1 Do For J := 0 To ABitmap.Height-1 Do A[I,J] := Bitmap.Canvas.Pixels[I,J] Но это долго. Поищи пример использования ScanLine. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
player891 (16.03.2012)
|
#3
|
|||
|
|||
![]() Код:
var Form1: TForm1; bp:TBitmap; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin bp:=TBitmap.Create; bp.LoadFromFile('ball.bmp'); end; procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; begin StringGrid1.ColCount:=bp.Width; StringGrid1.RowCount:=bp.Height; for i:=1 to bp.Width do for j:=1 to bp.Height do StringGrid1.Cells[j-1,i-1]:=IntToStr(bp.Canvas.Pixels[i,j]); end; |
#4
|
||||
|
||||
![]() Норм
![]() P.S. А если картинка хотя бы 800 на 600 будет? Это что же со StringGrid-ом станется, представить страшно. ![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
player891 (18.03.2012)
|
#5
|
|||
|
|||
![]() Большое всем спасибо за советы,подскажите как бы мне теперь из массива ,в который записывались значения пикселей из бмп файла,записать эти значения в бмп файл?то есть обратная манипуляция,проверка.
|
#6
|
||||
|
||||
![]() Обратно, оно и есть обратно:
взять пиксел Код:
... StringGrid1.Cells[j-1,i-1]:=IntToStr(bp.Canvas.Pixels[i,j]); вернуть обратно Код:
... bp.Canvas.Pixels[i,j] := StringToColor(StringGrid1.Cells[j-1,i-1], 0); Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |