![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день. Есть необходимость конвертации картинок разных форматов в ЖПЕГ, но желательно в TMemoryStream, чтоб все было в ОЗУ
для начала Код:
PicStream:TMemoryStream; .... PicStream.LoadFromFile(FullPath1+PicNameStr); TypeOfPic:=KindOfImage(PicStream.Memory); (*функция возвращает число соответсвующее типу загруженного с Жд файла, все работает*) if TypeOfPic = 4 then begin ShowMessage('PNG'); Png2Jpeg(PicStream); (*вызов процедуры где и должна быть конвертация*) end; PicStream.Position := 0; (*загрузка в ИМИДЖ картинки только ЖПЕГ из потока после трансформации, тут все работает, если ЖПЕГ то вывод в норме*) JPG:= TJpegImage.Create; try JPG.LoadFromStream(PicStream); ImgConv.Picture.Graphic:=JPG; finally FreeAndNil(JPG); end; .... procedure Png2Jpeg(aPicStream:TMemoryStream); var JPG:TJpegImage; PNG:TPngImage; BMP:TBitmap; begin JPG:=TJpegImage.Create; PNG:=TPngImage.Create; BMP:=TBitmap.Create; try aPicStream.Position:=0; PNG.LoadFromStream(aPicStream); //BMP.Assign(PNG); //JPG.Assign(BMP); JPG.Assign(PNG); JPG.SaveToStream(aPicStream); finally FreeAndNil(JPG); FreeAndNil(PNG); FreeAndNil(BMP); end; end; идет ошибка 53, что значит отсутствие ЖПЕГ при выводе в ИМИДЖ результатов конвертации Вопрос : - вообще везде используют только загрузку выгрузку в файл, не поток, может из за этого - что не учтено? - может в ХЕ3 что то по другому чем с Д7, откуда все примеры |