Modifier le DPI d'une image
bonjour
je souhaite choisir une image JPEG, qu'elle s'affiche dans un Timage, modifier le DPI de cette image en 300 DPI.
Je n'ai pas d'erreurs mais l'image ne prends pas en compte la resolution 300 DPI
Je deviens fou !!!
Si quelqu'un peut m'aider , grand MERCI !
Code:
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
| procedure TForm1.Button2Click(Sender: TObject);
const
BufferSize = 50;
DPI = 1; //inch
DPC = 2; //cm
var
Buffer: string;
index: INTEGER;
FileStream: TFileStream;
xResolution: WORD;
yResolution: WORD;
JpegImage: TJpegImage;
_type: Byte;
StrNomFichier:string;
begin
If OpenDialog1.Execute
then
begin
StrNomFichier:=(OpenDialog1.FileName);
JpegImage := TJpegImage.Create;
face.Picture.LoadFromFile(StrNomFichier);
FileStream:= TFileStream.Create (OpenDialog1.FileName, fmOpenReadWrite);
SetLength(Buffer, BufferSize);
FileStream.Read(buffer[1], BufferSize);
index := POS('JFIF' + #$00, buffer);
FileStream.Seek(index + 6, soFromBeginning);
_type := DPI;
FileStream.write(_type, 1);
xresolution := swap(300);
FileStream.write(xresolution, 2);
yresolution := swap(300);
FileStream.write(yresolution, 2);
JpegImage.SaveToStream(FileStream);
// face.Picture.SaveToFile(imei.Text+'face.JPG');
FileStream.Free;
JpegImage.Free;
//DeleteFile(StrNomFichier); }
end;
end; |