Mam pomysł na zupełnie nowy program, ale sprawia mi on pewną trudność. Mianowicie chodzi o zamianę obrazka wgranego do komponentu TImage na tablicę trójwymiarową, gdzie dwie pierwsze wartości oznaczały by pozycję konkretnego pixela, a trzecia wartość - kolor. Nie wiem czy taka funkcja istnieje, a jeśli nie to pewnie sam zacznę ją pisać, nie wiem tylko jak zacząć. Proszę o pomoc.
Bez sensu... 3 wymiary? Jak to widzisz ? Klasycznie bitmapa to 2 wymiary, a w komorce trzymasz kolor. Jeśli sie uprzesz to moazesz zrobic tablice jednowymiarową struktur x,y,color, ale to tylko strata miejsca.
Zapis nie gra roli. Chodzi mi tylko o to jak odczytać kolor z punktu o współżędnych x i y z obrazka wgranego do TImage.
Image->Canvas->Pixels[x][y] (TColor)
Tylko poco zapisywac obrazek w trójwymiarowej tablicy?
Normalnie bitmapa w pamieci zajmie ci niewiele ponad:
SzerokoscWysokoscsizeof(TColor)
twoim sposobem:
(sizeof(TColor)*3)WysokoscSzerokosc
Sam wybierasz co lepsze...
Tak: zółty numer telefonu, Nie: numerrrr niebieski ;)
Wielkie dzieki za pomoc i jeszcze tylko powiem ze raczej w trojwymiarowej nie zrobie bo mam kolejny pomysl. Moze kiedys dowiecie sie jaki :)
Och wybaczcie za zawracam łeba, ale nie jestem mistrzem więc czasem mam problemy :-/
Mianowicie chodzi o dalszą część, tz. jak to zamienić na postać szesnastkową (#XXXXXX) bo jest mi to potrzebne, a z odczytaniem wartości dla pixela o określonej pozycji dalej mam problem - niestemty.
Naucz się najpierw podstaw i nie zadawaj takich pytań :/ odpowiedz juz dostałeś, zreszta gdyby ci sie chcialo sam bys sobie poradził :|
Dziex za zeszmacenie. Tak na serio to podstawy mam tylko doświadczenia mi brak.
To wyrażenie oznacza kolor pixela o wspolrzednych x i y:
<font size="4">Image->Canvas->Pixels[x][y]</span>
A jesli chcesz uzyskac kolor pixela w postaci hex poczytaj na temat formatowanego wpisu do łańcucha; funkcja:
<font size="4">sprintf()</span>
pozdrawiam ^^