Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.185.103] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Извините эта тема уже была наверное, но у меня небольшая проблема.
Я определяю цвет пикселя так: TColor color; color=Image1->Canvas->Pixels[x][y]; Если в Image1 загружен bmp ,то все работает ,а если jpg ,то выходит ошибка! Кто знает в чем дело то помогите.Спасибо. Да и еще как определить размер рисунка загруженный в TImage? |
Сообщ.
#2
,
|
|
|
Да и еще как определить размер рисунка загруженный в TImage? |
Сообщ.
#3
,
|
|
|
Image->Picture->Graphic->Width
Image->Picture->Graphic->Height |
Сообщ.
#4
,
|
|
|
Цитата _Eldorado_, 25.08.04, 19:30 а если jpg ,то выходит ошибка! Открыть в JPG. Копировать область в TBitmap. Работать с JPG как с Битмап |
Сообщ.
#5
,
|
|
|
myaut, ага, особенно когда картинка 2000х2000, вот тогда точно с Bitmap удобно работать будет .
Вообще, как там кто-то выражался, зачем доставать правое ухо левой рукой через BMP? |
Сообщ.
#6
,
|
|
|
Просто TJPEGImage не предоставляет непосредственного доступа к Пикселам. Вот и приходится выкрычиваться B)
|
Сообщ.
#7
,
|
|
|
если пиксел цвет которого надо определить виден (т.е. не ушел куда-то за экран при 2000х2000), то можно и при загруженном jpg и при bmp определить через HDC того на чем они нарисованы, т.е. через GetPixel(GetDC(Image1->Handle),X,Y) вот только X и Y будут не совсем те (хотя может оказаться что те самые ) - вероятно надо будет пересчитывать...
Добавлено в : зы: тока что Image1->Canvas->Pixels, что GetPixel() - работают ооочень медленно - лучше через сканлайны или дибы работать... |
Сообщ.
#8
,
|
|
|
Цитата myaut @ 25.08.04, 23:12 Копировать область в TBitmap. А как скопировать JPG в TBitmap? Добавлено в : А че это такое? Создаю к примеру .bmp и закрашиваю все красным.Сканирую каждый пиксел и в RGB записываю в файл. В некоторых местах записывается (255,255,255)... |
Сообщ.
#9
,
|
|
|
TBitmap* bmp;
TJPEGImage* jpeg; ...... bmp->Assign(jpeg); или bmp->Canvas->Draw(0, 0, jpeg); |
Сообщ.
#10
,
|
|
|
.jpeg находится в TImage.Как его оттуда взять и записать в TJPEGImage?
|
Сообщ.
#11
,
|
|
|
TImage* image;
TJPEGImage* jpeg; ...... jpeg->Assign(image->Picture->Graphic); но только в том случае, если в TImage хранится битмап. Добавлено в : В смысле в TImage не jpeg хранится, а уже раскодированный битмап. |
Сообщ.
#12
,
|
|
|
Graphics::TBitmap *bmp=new Graphics::TBitmap; bmp->Assign(Image1->Picture->Graphic); ... delete bmp; |
Сообщ.
#13
,
|
|
|
std::auto_ptr<Graphics::TBitmap> bmp(new Graphics::TBitmap); bmp->Assign(Image1->Picture->Graphic); ... так ИМХО надежнее |
Сообщ.
#14
,
|
|
|
А как на счет белых пикселей (255,255,255)?
Кто-нибуть знает че это такое?Откуда они берутся?Помогите плииз. Добавлено в : Все получилось!Это были пиксели с индексами Image->Picture->Graphic->Width Image->Picture->Graphic->Height Надо отнимать 1 вить индексация пикселей идет с 0!!! |
Сообщ.
#15
,
|
|
|
Цитата Как это может быть надежнее, чем явно писАть delete? ADA, 26.08.04, 19:09 так ИМХО надежнее |