Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Вниз

Использование графики в формате Jpeg в CLX   Найти похожие ветки 

 
Mim1 ©   (2004-08-27 13:24) [0]

Не получется отобразить картинку jpeg в CLX приложении. Судя посему TJPEGImage в своих предках использует VCLные классы из модуля GRAPHICS а не CLXные из QGRAPHICS. :(

Кто нибудь знает любой способ отображения JPEG"а в CLX?
подскажите пожалуйста


 
MIm1 ©   (2004-08-27 13:31) [1]

Подскажите хотябы преобразования jpeg в bmp во премя выполнения программы. :)


 
Анонимщик ©   (2004-08-27 16:54) [2]

Не буду комментировать первую часть вопроса, ты бы поосторожнее выражался, если не в курсе. Не знаю и почему у тебя ничего не получается, код бы привел, что ли.
А jpeg в bmp переводится так:

var
BMP : TBitmap;
jpeg: TJpegImage;
begin
 ...

 BMP.Assign(jpeg);


 
Mim1 ©   (2004-08-27 17:32) [3]


> Не буду комментировать первую часть вопроса, ты бы поосторожнее
> выражался, если не в курсе


Не у круто, что бы я без тебя делал. Я в этом уверен на 90 процентов. Тем более я говорю "судя по всему", куда уж тут осторожнее.


> код бы привел, что ли.


1) new -> clx application
2) положите картинку с палитры копонент на форму , проверте что в uses  qgraphics
2) Image1.picture.loadfromfile("");
Фсе.


> var
> BMP : TBitmap;
> jpeg: TJpegImage;
> begin
>  ...
>
>  BMP.Assign(jpeg);


Я даже знаю результат, "can"t assign" потому что TBitmap из Greaphics <> TBitmap из QGreaphics.
Не ну супер мегарулез, я кажется дал достаточно инфы, сукдя по этому коду в  конкретном случае вы знаете меньше меня. Хотя бы попробывали прежде чем отвечать.

Тем не менее решение нашел, дело в том что под линуксом jpg работает отлично, а вот в Windows почемуто не поддерживается
{$IFDEF LINUX}
 Add("jpg", SVJpegs, 0, TBitmap);
{$ENDIF}
.
Вышел из ситуации я подключением библиотечки с windows загрузкой bmp в mswindows и использованием стандартного функционала под linux.

Вот библиотечка.

library w32jpeg;

uses
 SysUtils,
 Classes,
 Graphics,
 Jpeg;

{$R *.res}

Function Bmp2Jpg(bmp,jpg:TStream):boolean;
var b:TBitmap;
   j:TJPEGImage;
begin
 result := true;
 try
   b := TBitmap.Create;
   try
     b.LoadFromStream(bmp);
     j :=TJPEGImage.Create;
     try
       j.Assign(b);
       j.SaveToStream(jpg);
     finally
       j.Free;
     end;
   finally
     b.Free;
   end;
 except
   Result := false;
 end;
end;

Function Jpg2Bmp(jpg,bmp:TStream):boolean;
var b:TBitmap;
   j:TJPEGImage;
begin
 result := true;
 try
   j :=TJPEGImage.Create;
   try
     j.LoadFromStream(jpg);
     b := TBitmap.Create;
     try
       b.Assign(j);
       b.SaveToStream(bmp);
     finally
       b.Free;
     end;
   finally
     j.Free;
   end;
 except
   Result := false;
 end;
end;

exports Bmp2Jpg, Jpg2Bmp;

end.


{$IFDEF MSWINDOWS}
Function Jpg2Bmp(jpg,bmp:TStream):boolean; external "w32jpeg.dll";
Function Bmp2Jpg(bmp,jpg:TStream):boolean; external "w32jpeg.dll";
{$ENDIF}

         ms := TMemoryStream.Create;
         try
           BinaryToStream(s,ms);
           ms.Position := 0;
           {$IF Defined(MSWINDOWS)}
           ms1 := TMemoryStream.Create;
           try
             if Jpg2Bmp(ms,ms1) then
               begin
                 ms1.Position := 0;
                 Image1.Picture.LoadFromStream(ms1);
               end;
           finally
             ms1.Free;
           end;
           {$ELSEIF Defined(LINUX)}
             if Image1.Picture.Graphic = nil then
             Image1.Picture.Graphic := TBitmap.create;
           Image1.Picture.Graphic.LoadFromStream(ms);
           {$IFEND}
         finally
           ms.Free;
         end;
       end;



 
Mim1 ©   (2004-08-27 19:10) [4]

Забыл сказать, программу и dll компилять с пакетом rtl70.bpl иначе будут проблеммы с необщим диспетчером памяти и использованием TStream.


> [2] Анонимщик ©   (27.08.04 16:54)


Если вы не поняли, jpeg в clx не поддерживается так что код (того что не существует) привести не могу.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
1-1091431276
dima
2004-08-02 11:21
2004.09.12
тест на delphi


1-1093522220
mouse_web
2004-08-26 16:10
2004.09.12
РageСontrol скрыть закладку


1-1093357599
барбос
2004-08-24 18:26
2004.09.12
бесконечный цикл


1-1093761619
DIS
2004-08-29 10:40
2004.09.12
функция которая переводит число в слова


1-1093723576
UserUserov
2004-08-29 00:06
2004.09.12
Как связать программу срасширением?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский