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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2011, 15:45   #1
Русик123
 
Регистрация: 09.08.2011
Сообщений: 7
По умолчанию Не получается конвертировать jpg в png

помогите пожалуйста нашел пример как конвертировать, вроде бы все сделал правильно потестил, все работала, а как только пользователь коснулся программы, конвертор слетел и теперь выдает ошибку
---------------------------
SmarTeam Kit
---------------------------
Cannot assign a TJPEGImage to a TPngImage.
---------------------------
ОК
---------------------------


Код:
procedure TF_ADD_Requests.JPEGtoBMP(const FileName: TFileName;
  var openDLG: TOpenDialog);
var
  jpg: TJPEGImage;
  png: TPngImage;
begin
  jpg := TJPEGImage.Create;
  try
    jpg.LoadFromFile(FileName);
    png := TPngImage.Create;
    try
      png.Assign(jpg);
      png.SaveToFile(ChangeFileExt(FileName, '.png'));
      openDLG.FileName := ChangeFileExt(FileName, '.png');
    finally
      png.Free
    end;
  finally
    jpg.Free
  end;
end;
что я сделал не так!?



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.08.2011 в 15:57.
Русик123 вне форума Ответить с цитированием
Старый 17.03.2012, 17:45   #2
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Русик123 Посмотреть сообщение
помогите пожалуйста нашел пример как конвертировать, вроде бы все сделал правильно потестил, все работала, а как только пользователь коснулся программы, конвертор слетел и теперь выдает ошибку
---------------------------
SmarTeam Kit
---------------------------
Cannot assign a TJPEGImage to a TPngImage.
---------------------------
ОК
---------------------------


Код:
procedure TF_ADD_Requests.JPEGtoBMP(const FileName: TFileName;
  var openDLG: TOpenDialog);
var
  jpg: TJPEGImage;
  png: TPngImage;
begin
  jpg := TJPEGImage.Create;
  try
    jpg.LoadFromFile(FileName);
    png := TPngImage.Create;
    try
      png.Assign(jpg);
      png.SaveToFile(ChangeFileExt(FileName, '.png'));
      openDLG.FileName := ChangeFileExt(FileName, '.png');
    finally
      png.Free
    end;
  finally
    jpg.Free
  end;
end;
что я сделал не так!?



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Мне тоже интересно, столкнулся с такой же проблемой, я уже и через timage пробывал. гуру подскажите пожалуйста.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 17.03.2012, 17:51   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуйте такой схемой:
jpeg->bmp->png.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.03.2012, 18:08   #4
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
попробуйте такой схемой:
jpeg->bmp->png.
Спасибо, именно так я и сделал. Меня натолкнул на такую мысль timage, который не разрешает читать с канвы png. Говорит мол только bmp имеет право, мерзавец А с bmp всё отлично читается. Кончено способ извращенский, но за неимением лучшего...
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 18.03.2012, 11:02   #5
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Код:
var
  jpg: TJPEGImage;
  png: TPNGObject;
begin
  jpg:=TJPEGImage.Create;
  jpg.LoadFromFile('image.jpg');
  png:=TPNGObject.CreateBlank(COLOR_RGB, 8, jpg.Width, jpg.Height);
  png.Canvas.Draw(0,0,jpg);
  png.SaveToFile('image.png');
  png.Free;
  jpg.Free;
end;
Только какой смысл в таком преобразовании?
x128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертер из png в jpg или gif или bmp Квэнди Мультимедиа в Delphi 8 04.10.2011 22:26
Как нарисовать на изображении вначале jpg затем png pavellyba Общие вопросы Delphi 0 17.05.2011 22:25
Как вставить картинки PNG, JPG в RichEdit? Vladimir K. Компоненты Delphi 6 16.10.2010 17:19
Ковертирование из png 24 бит в png 8 бит isat Общие вопросы .NET 0 22.03.2010 13:38