掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
JPEG画像の解像度を変えるには? (ID:6912)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
とりあえず Delphi の TJpegImage でつくった画像は、次のようにして 72dpi に設定できるようです。MS Photo Editor で確認しました。 function GetAPP0_Offset(ms:TMemoryStream):integer; var p1,p2:PByte; begin result := -1; p1 := ms.Memory; while (integer(p1)-integer(ms.Memory))<ms.Size do begin if p1^ = $FF then begin p2 := p1; Inc(p2); if p2^ = $E0 then begin result := integer(p1)-integer(ms.Memory); exit; end; end; Inc(p1); end; end; procedure TForm1.Button1Click(Sender: TObject); var ms:TMemoryStream; APPO_Offset:integer; units,hidpi,lodpi:Byte; dpi:WORD; begin ms := TMemoryStream.Create; ms.LoadFromFile('C:\Any.jpg'); // 画像の読み込み APPO_Offset := GetAPP0_Offset(ms); if APPO_Offset = -1 then begin ShowMessage('There is no APP0 Segment'); ms.Free; exit; end; ms.Position := APPO_Offset+2+9; units := 1; // units = 1: X and Y are dots per inch ms.Write(units,1); dpi := 72; // set 72 dpi hidpi := HiByte(dpi); lodpi := LoByte(dpi); ms.Write(hidpi,1); // Xdensity High ms.Write(lodpi,1); // Xdensity Low ms.Write(hidpi,1); // Ydensity High ms.Write(lodpi,1); // Ydensity Low ms.Position := 0; ms.SaveToFile('c:\Test.jpg'); // 画像の保存 ms.Free; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.