Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   bmp2jpeg (https://www.delphipraxis.net/46658-bmp2jpeg.html)

faux 29. Mai 2005 12:00


bmp2jpeg
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo!

Das soll jetzt kein "Kongurenz-Kampf" zwischen arbu man und mir sein... :D

Aber ich hab auch so ein Programm Programmiert (schon vor einem halben Jahr).
Jedoch hat meines kein GUI, was ich persönlich konfortabler finde.
So kann man per Drag'n Drop oder per Kontextmenü ganz schnell Bitmaps in JPEGs konvertieren.

Wer das ganze ins Kontextmenü von Windows integrieren will, kann das hier nachlesen:
http://faux.fa.funpic.de/apps/info/bmp2jpeg.php

Luckie 29. Mai 2005 12:59

Re: bmp2jpeg
 
Wozu Forms, Dialogs, ExtCtrls? Auch auf die SysUtils kann man verzichten. Und wozu das:
Delphi-Quellcode:
Application.Initialize;
...;
Application.Run;
Wähl doch aus dem Menü -> Neu einfach eine Konsolenanwendung aus.

faux 29. Mai 2005 14:02

Re: bmp2jpeg
 
Bis auf Dialogs brauch ich alles.

Delphi-Quellcode:
program bmp2jpeg;

uses
  Forms, SysUtils, Jpeg, ExtCtrls;

{$R *.res}

var
  jpg: TJpegImage;
  img: TImage; //ExtCtrls
  i: Integer;
  temp: string;
begin
  Application.Initialize; //Hierfür die Forms (klar)
  if (FileExists(ParamStr(1))) and (ExtractFileExt(ParamStr(1)) = '.bmp') then //ParamStr ist in SysUtils
  try
    temp := '';
    for i := 1 to Length(ExtractFileName(ParamStr(1))) - Length(ExtractFileExt(ParamStr(1))) do
      temp := temp + ExtractFileName(ParamStr(1))[i];
    img := TImage.Create(Application); //Hier brauch ich einen Owner
    img.Picture.LoadFromFile(ParamStr(1));
    jpg := TJpegImage.Create;
    jpg.Assign(img.Picture.Bitmap);
    jpg.SaveToFile(ExtractFileDir(ParamStr(1))+'\'+temp+'.jpg');
  except
  end;
  Application.Run;
end.
Ich weiß nicht wie das ohne den Standard-Komponenten von Delphi geht (also ohne ParamStr zB).
Geht das ohne ParamStr überhaupt?

Luckie 29. Mai 2005 14:35

Re: bmp2jpeg
 
Nö, Forms brauchst du auch nicht und ein unsichtbares Image auch nicht.

jfheins 29. Mai 2005 14:39

Re: bmp2jpeg
 
Probiers mal so in der Art:
Delphi-Quellcode:
program bmp2jpeg;

uses
  Forms, SysUtils, Jpeg, ExtCtrls; // k.A., was du davon brauchst, aber:

{$APPTYPE CONSOLE} 

var
  jpg: TJpegImage;
  img: TImage; // Warum nicht TBitmap ?
  i: Integer;
  temp: string;
begin
  Application.Initialize; //Brauchst du nicht > weg damit
  if (FileExists(ParamStr(1))) and (ExtractFileExt(ParamStr(1)) = '.bmp') then //ParamStr ist in SysUtils
  try
    temp := '';
    for i := 1 to Length(ExtractFileName(ParamStr(1))) - Length(ExtractFileExt(ParamStr(1))) do
      temp := temp + ExtractFileName(ParamStr(1))[i];
    img := TImage.Create(Application); //kannst auch nil nehmen; oder ein Bitmap
    img.Picture.LoadFromFile(ParamStr(1));
    jpg := TJpegImage.Create;
    jpg.Assign(img.Picture.Bitmap);
    jpg.SaveToFile(ExtractFileDir(ParamStr(1))+'\'+temp+'.jpg');
  except
  end;
  Application.Run; //Brauchst du nicht > weg damit
end.

xaromz 29. Mai 2005 14:43

Re: bmp2jpeg
 
Hallo!

Hab Dein Programm mal etwas überarbeitet, vieles geht etwas einfacher :wink: :
Delphi-Quellcode:
program bmp2jpeg;

uses
  SysUtils, Graphics, Jpeg;

{$R *.res}

var
  jpg: TJpegImage;
  bmp: TBitmap;
begin
  if (FileExists(ParamStr(1))) and
     (LowerCase(ExtractFileExt(ParamStr(1))) = '.bmp') then // gibt auch .BMP
  try
    bmp := TBitmap.Create; // Besser als TImage, muss ja nicht angezeigt werden
    bmp.LoadFromFile(ParamStr(1));
    jpg := TJpegImage.Create;
    jpg.Assign(bmp);
    jpg.SaveToFile(ChangeFileExt(ParamStr(1), '.jpg')); // Es gibt ja fertige Funktionen...
  finally
    FreeAndNil(bmp); // Aufräumen
    FreeAndNil(jpg);
  end;
end.
Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz