Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 23:56   #1
Nick0
 
Регистрация: 11.12.2009
Сообщений: 3
По умолчанию Pixels[][] или GetPixel(hdc,x,y)

Здравствуйте,
Уважаемые модераторы, если моя тема уже 1000-я по счету, то прежде чем удалить её, скажите адрес хотя бы одной такой темы.
Я уже просмотрел не один форум и не нашел работающего варианта для решения моей проблемы.

Прошу помочь в такой задаче:
Требуется создать объект типа TImage, загрузить в него фотку jpg и научиться узнавать цвет любого пикселя в ней.

Вот умозрительная последовательность действий:

Код:
TImage image = new TImage(Application);
image->picture->loadfromfile(c:\1.jpg);
TColor alpha = image1->picture->canvas->pixels[100][100];
Среда Turbo c++ builder 6
Я уже пробовал как угодно это проделать. Использовал примеры с разных форумов - НИЧЕГО НЕ РАБОТАЕТ.
Если кто может, прошу написать РАБОТАЮЩИЙ код.

Спасибо
Nick0 вне форума Ответить с цитированием
Старый 12.12.2009, 01:30   #2
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Код:
image->picture->loadfromfile(c:\1.jpg);
В скобках точно не так:

Код:
image->picture->loadfromfile("c:\1.jpg");
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 12.12.2009, 01:31   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Почитайте вот >это<
MaTBeu вне форума Ответить с цитированием
Старый 12.12.2009, 13:03   #4
Nick0
 
Регистрация: 11.12.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Почитайте вот >это<
Спасибо, но работающего примера здесь нет.
Nick0 вне форума Ответить с цитированием
Старый 12.12.2009, 15:54   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Выдрано из программки "Builder Helper"
Цитата:
Сейчас вы узнаете как можно использовать компонент TImage. Как вы уже поняли - этот компонент для работы с изображениями.Изначально он работает с ыайлами типа BMP и WMF - это примитивные и неудобные форматы.Однако можно работать и с jpeg если подключить заголовочный файл jpeg.hpp к программе.Это делается довольно просто.Создаём новое приложение и смотрим вниз редактора кода.Там есть три закладки - Unit1.cpp, Unit1.h, Diagram.Выбираем вторую - unit1.h.Это заголовочный файл вашей программы, в котором указаны подключаемые для тех или иных целей библиотеки, а также публикуются переменные и функции, чтобы быть доступными из любой части программы.Так вот, нам надо в начале присоединить заголовочный файл для работы с jpeg- форматом.Делается это так - добавляется строка:

#include <jpeg.hpp>



Всё!Теперь можно работать с изображениями.
Киньте на форму наш любимый Button и Image со вкладки Additional.Да, и заранее сохраните какой-нибудь jpeg - рисунок на компе с коротким адрессом, допустим "C:\1.jpg"

С jpeg я вам покажу только пару действий, а вот с BMP можно много чего творить.

Image1->Picture->LoadFromFile("c:\1.jpg");//загружает рисунок в Image1
Image1->Picture->SaveToFile("c:\2.jpg");//сохраняет рисунок из Image1 в указанный файл


Несколько свойств:

Stretch - изображение полностью вписывается в отведённую область независимо от размеров
Proportional - указывает - будут ли соблюдаться пропорции при изменении размеров изображения
Width -ширина компонента
Height - высота компонента
Picture->Height - высота рисунка
Picture->Width - ширина рисунка

Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 12.12.2009, 16:09   #6
Nick0
 
Регистрация: 11.12.2009
Сообщений: 3
По умолчанию

решение для biuldera найдено:

Код:
TJPEGImage *jpg = new TJPEGImage();
jpg->LoadFromFile("C:\1.jpg");

TImage *image = new TImage(Application);
image->Picture->Bitmap->Assign(jpg);

TColor alpha = GetPixel(image->Canvas->Handle, 10, 10); 
// TColor alpha = Image->Canvas->Pixels[10][10]; - это тоже работает
как видно, приходится использовать 2 объекта разных типов TJPEGImage и Timage.
Nick0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что мощнее или портативнее движок directx или opengl? albatros Помощь студентам 2 08.12.2009 17:43
[Del] TCanvas.pixels → HBitMap Alex Cones Win Api 11 21.11.2009 19:54
Создать HDC с определенным размером -XAKEP- Общие вопросы C/C++ 1 07.07.2009 15:33
CreateCompatibleDC(NULL) - для какого HDC создаётся compatible DC butterflight Win Api 9 16.06.2009 21:19
10.0 mega pixels Paragvay_ Свободное общение 7 08.02.2008 14:53