Q&A

  • jpg를 bmp로 바꾸었을때의 해상도문제
1152 X 864 사이즈의 jpg 파일을
400 X 294 사이즈의 bmp파일로 만든뒤 Timage에 로드시켜
출력하는 프로그램을 짜고 있습니다.
헌데 해상도가 무지하게 떨어지는군요.
변환시켜줄때 해상도를 높여주는 방법은 없을까요?
조언 부탁드리겠습니다.

procedure TFrmPhoto.JpegToBmp(v_jpeg: string);
var
  BMPImage: TBitmap;
  JPEGImage: TJPEGImage;
  v_rect_old, v_rect_new: TRect;
  v_width,v_height:integer;
  v_jpeg_path:string;
begin
  JPEGImage := TJPEGImage.Create;
  v_rect_New := Rect(0, 0, 400, 294);

  try
    BMPImage := TBitmap.Create;
    try
      JPEGImage.LoadFromFile(v_jpeg);
      BMPImage.Assign(JPEGImage);
      v_jpeg_path := PasString(v_jpeg, '.', 1);
      BMPImage.SaveToFile(v_jpeg_path + '_imsi.bmp');
      BMPImage.LoadFromFile(v_jpeg_path + '_imsi.bmp');
      v_rect_Old := Rect(0, 0, BMPImage.Width, BMPImage.Height);
      img4.Canvas.CopyRect(v_rect_New, BMPImage.Canvas, v_rect_old);

      img4.Picture.SaveToFile(v_jpeg_path + '_imsi.bmp');
    finally
      BMPImage.Free;
    end;
  finally
    JPEGImage.Free;
  end;

end;

2  COMMENTS
  • Profile
    박상윤 2002.01.22 19:25
    사이즈가 2배이상 줄었네여..
    음 그냥 copyrect(Canvas)를 사용하신다면..
    당연히 깨지겠져..
    물론 확대 할때가 더깨지만
    따라서 보간법을 사용하셔야 합니다.
    선형보간법을 사용해서 이미지를 줄이거나
    확대하심 깨지는 것을 많이 방지 할수 있습니다.
    선형보간법 쓰는 방법은
    www.nanosys.co.kr 가보시면
    기술자료->이미지프로세싱에 있습니다.
    제가 쓴것입니다.

    함해보세여..그럼
  • Profile
    보들레르 2002.01.22 04:12
    JPEGImage 의 CompressionQuality 를 100 으로 해 보세요.

    그래도 안되면..? 저도 모르겠네요..^_^;;

    그럼~ 항상 즐거운 프로그래밍 하시길~