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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 00:24   #1
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию Изменение оттенка картинки в формате Png

В своей программе хочу осуществить поддержку стилей. Для этого на форме уже имеються картинки, осталось изменять их оттенок в соответствии со цветовой схемой. В интернете видел несколько примеров, но это только для Bmp. В связи с этим хочу поинтересоваться у форумчан, может быть кто-нибудь сталкивался с такой проблемой?
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 17.04.2011, 00:28   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

изменять напрямую JPG все равно нельзя, так что конвертить в BMP(можно внутри программы, а не в ресурсах)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.04.2011, 00:30   #3
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
изменять напрямую JPG все равно нельзя, так что конвертить в BMP(можно внутри программы, а не в ресурсах)
Я говорил про png, а разве нельзя получать цвет каждого пикселя картинки изменять его оттенок и уже его отображать?
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 17.04.2011, 00:34   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

png > BMP > преобразование пикселей > png
Человек_Борща вне форума Ответить с цитированием
Старый 17.04.2011, 00:35   #5
Dеlphi
нажмите + на весах
Пользователь
 
Регистрация: 10.11.2010
Сообщений: 30
По умолчанию

преобразуй его с начало в bmp (Tbitmap) а потом делай с ним что хочешь, потом обратно в png если надо
Если помог нажми на весы
Dеlphi вне форума Ответить с цитированием
Старый 17.04.2011, 00:37   #6
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
png > BMP > преобразование пикселей > png
Жаль, я предполагал, что всё как-то оптимизированней можно сделать
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 17.04.2011, 00:39   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а как оптимизированней?
отображается то все равно битмап, а не png
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.04.2011, 01:21   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

хатя нет.. думаю можно..
в delphi 2010 есть стандартный png класс

Вот что у меня получилось без преобразования в bmp.
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
  png: TPngImage;
  i, j: Integer;
begin
  png := TPngImage.Create;
  png.LoadFromFile(myDir + 'File.png');

  for i := 1 to 50 do
  begin
    for j := 1 to 50 do
    begin
      png.Pixels[i, j] := ClGray;
    end;
  end;
   png.PixelInformation.
  Image1.Picture.Assign(png);
  png.free;
end;
есть доступ к пикселям картинки. Но сам никогда не делал картинки серыми по этому хз как.
Человек_Борща вне форума Ответить с цитированием
Старый 17.04.2011, 13:45   #9
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Чтобы предоставить доступ к пикселям, TPngImage создает внутренний битмап.
eduard93 вне форума Ответить с цитированием
Старый 17.04.2011, 14:16   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Спасибо, я не знал об этом!
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить картинки PNG, JPG в RichEdit? Vladimir K. Компоненты Delphi 6 16.10.2010 17:19
Фрейм в виде png картинки dmitriegorovih Общие вопросы Delphi 0 16.07.2010 20:42
png картинки в Delphi 10 Marsel737 Общие вопросы Delphi 8 07.05.2010 22:03
вывод картинки *.png на экран телефона furstenberg Общие вопросы по Java, Java SE, Kotlin 3 31.07.2008 22:07
Изменение размера картинки Борис Низов PHP 6 09.12.2007 16:26