Autor |
Beitrag |
Yogu
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 25.03.07 20:00
PictureConvert[meta]PNG, JPG, BMP, Konvertieren, Konvertierung, Convert, PictureConvert[/meta]
Mit dieser Unit könnt ihr die Dateitypen BMP, PNG und JPG umwandeln. Ich habe die einzelnen Prozeduren und Funkionen noch einmal näher erläutert, darum werde ich hier nichts mehr erklären.
Hinweis: Erst die Unit im Anhang installieren (in den Lib-Pfad von Delphi), und dann ausprobieren
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164:
| unit PictureConvert;
interface
uses SysUtils, Dialogs, Graphics, PNGImage, JPEG;
type TPictureType=(ptNone, ptBMP, ptPNG, ptJPG);
procedure ConvertPicture(Source, Dest: String; PictureType: TPictureType);
function LoadBMPFromFile(const FileName: String): TBitmap;
function LoadPNGFromFile(const FileName: String): TBitmap;
function LoadJPGFromFile(const FileName: String): TBitmap;
procedure SaveBMPToFile(Picture: TBitmap; FileName: String);
procedure SavePNGToFile(Picture: TBitmap; FileName: String);
procedure SaveJPGToFile(Picture: TBitmap; FileName: String);
implementation
procedure ConvertPicture(Source, Dest: String; PictureType: TPictureType); var Ext: String; Picture: TBitmap; begin if Dest = '' then Dest := Copy(Source, 0, Length(Source)-Length(Ext)); if ExtractFileExt(Dest) = '' then begin if PictureType = ptBMP then Dest := Dest + '.bmp'; if PictureType = ptPNG then Dest := Dest + '.png'; if PictureType = ptJPG then Dest := Dest + '.jpg'; end;
Ext := LowerCase(ExtractFileExt(Source)); if Ext = '.jpeg' then Ext := '.jpg'; Picture := TBitmap.Create;
if Ext = '.bmp' then Picture := LoadBMPFromFile(Source); if Ext = '.png' then Picture := LoadPNGFromFile(Source); if Ext = '.jpg' then Picture := LoadJPGFromFile(Source);
if PictureType = ptBMP then SaveBMPToFile(Picture, Dest); if PictureType = ptPNG then SavePNGToFile(Picture, Dest); if PictureType = ptJPG then SaveJPGToFile(Picture, Dest); end;
function LoadBMPFromFile(const FileName: String): TBitmap; begin Result := TBitmap.Create; try Result.LoadFromFile(FileName); finally end; end;
function LoadPNGFromFile(const FileName: String): TBitmap; var PNG: TPNGObject; begin PNG := TPNGObject.Create; Result := TBitmap.Create; try PNG.LoadFromFile(FileName); Result.Assign(PNG); finally PNG.Free; end; end;
function LoadJPGFromFile(const FileName: String): TBitmap; var JPG: TJPEGImage; begin JPG := TJPEGImage.Create; Result := TBitmap.Create; try JPG.LoadFromFile(FileName); Result.Assign(JPG); finally JPG.Free; end; end;
procedure SaveBMPToFile(Picture: TBitmap; FileName: String); begin try Picture.SaveToFile(FileName); finally end; end;
procedure SavePNGToFile(Picture: TBitmap; FileName: String); var PNG: TPNGObject; begin PNG := TPNGObject.Create; try PNG.Assign(Picture); PNG.SaveToFile(FileName); finally PNG.Free; end; end;
procedure SaveJPGToFile(Picture: TBitmap; FileName: String); var JPG: TJPEGImage; begin JPG := TJPEGImage.Create; try JPG.Assign(Picture); JPG.SaveToFile(FileName); finally JPG.Free; end; end;
end. |
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: m1398
|
|
zakoon
Beiträge: 60
|
Verfasst: Sa 08.11.08 17:51
Hallo, ich würde gerne diese Unit benutzen, leider meldet mir Delphi 7 "PNGImage.dcu" nicht gefunden. Wo bekomme ich diese PNG-Unit? Oder kann ich etwas anderes verwenden?
Dankeschön!
|
|
Yogu
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 09.11.08 15:19
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 09.11.08 15:56
Yogu hat folgendes geschrieben : | Ich möchte jedoch noch anmerken, dass Borland (oder Codegear, weiß nicht mehr genau) die Rechte für diese Komponente in Anspruch genommen hat. Der Anhang stammt von der Zeit davor, ich hoffe mal, dass das noch ok ist. |
Laut Lizenz ja, laut Nick Hodges nein, aber schließlich hast du es vorher gepostet.
|
|
|