Q&A

  • 해상도에 관해서??
다른서버에 있는 사진화일을(jpg)로 새로운 서버에 옮겼는데요.
vb로 만들어져 있는 예전 프로그램으로 보면 해상도나 선명도 등이 괘안은데
제가 만든 델파이로 보니 화질이 안좋아서요..흐흑!

새프로그램으루 작업을 해야하는디.. 해상도등을 좋게 해줄 수 있는
방법이 혹시 계시면 부탁드리겠습니다.



***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)
3  COMMENTS
  • Profile
    박상윤 2002.01.08 20:04
    jpg 파일을 어떻게 읽으쎴는지 ..
    picture로 읽으셨나요..아님 TjpegImage로  읽으셨나요...
    말그대로 PixelFormat를 변화 시키는 방법이 있습니다.
    몇비트로 되어있는지를 체크해서 똑같이 맞추는거죠..
    그리구 jpg는 압축률 조정같은 것두 할수 있을거구여..
    아마도 압축을 안하면...더 선명하게 보일 듯..
    어떤 상태인지 잘몰라 두서 없이 말씀 드렸습니다.





    ***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)
  • Profile
    빙고 2002.01.08 22:25
    우선 답변주셔서 감사합니다.

    일단 Select를 해서 사진을 가져온다음 아래와 같이 작업을 했습니다.
    선언문에 이렇게 되어있습니다.
        FileStream : TFileStream;
        jBmp,sBmp  : TBitmap;
        kJpg       : TJpegImage;
        sFileName  : String

    _JPGPHOTO는 그냥 디렉토리명에다가 임의의 이름으로 JPG를 한것이고
    _BMPPHOTO는 BMP로 이름을 준것입니다.(String 변수입니다.)
    JPG와 BMP를 반복한건 그러면 해상도가 좀 더 낳아진다는 말을 들어서여..

             FileStream  := TFileStream.Create(_JPGPHOTO, fmCreate); //이미지 사진 작업

             try
                TBlobField(Query1.FieldByName('PHOTO')).SaveToStream(FileStream);
             finally
                FileStream.Free;
             end;


             kJpg := TJpegImage.Create;
             kJpg.LoadFromFile(_JPGPHOTO);


             jBmp := TBitmap.Create;  // jpg 를 bmp
             jBmp.Assign(kJpg);
             if FileExists(_BMPPHOTO) then DeleteFile(_BMPPHOTO);
             jBmp.SaveToFile(_BMPPHOTO);
             jBmp.Free;

    {         try
                Image1.Picture.LoadFromFile(_BMPPHOTO);
                Image1.Picture.Assign(jBmp);
                Image1.Picture.SaveToFile(_BMPPHOTO);
             except
                Image1.Picture.Assign(nil);
             end;}

             jBmp := TBitmap.Create;
             jBmp.LoadFromFile(_BMPPHOTO);

    /*아래 작업은 조회하는 프로그램의 TImage의 크기가 Autosize로 되어있는데
      델파이에서의 프로그램에서 조회해보면 사진이 크게나와서 얼굴이 퍼져
      보여서 크기를 좀 줄였습니다.
      TImage의 크기는 크게 고정되어 있거든요..

             sBmp := TBitmap.Create;
             sBmp.Width  := Round(jBmp.Width*0.7);
             sBmp.Height := Round(jBmp.Height*0.8);
             // Delete the lines need to shrink
             SetStretchBltMode(sBmp.Canvas.Handle, STRETCH_DELETESCANS);
             // Bmp Shrink

             sBmp.Canvas.CopyRect(Rect(0, 0, Round(jBmp.Width*0.7), Round(jBmp.Height*0.8)),
                                  jBmp.Canvas,
                                  Rect(0, 0, jBmp.Width, jBmp.Height));
             // Save Bmp to Jpg
             if FileExists(_BMPPHOTO) then DeleteFile(_BMPPHOTO);
             sBmp.SaveToFile(_BMPPHOTO);

             kjpg.Free;
             jBmp.Free;
             sBmp.Free;


             sBmp := TBitmap.Create;
             sBmp.LoadFromFile(_BMPPHOTO);

             if FileExists(_JPGPHOTO) then
                DeleteFile(_JPGPHOTO);

             kJpg := TJpegImage.Create;  //bmp를 jpg로
             kJpg.Assign(sBmp);
             kJpg.SaveToFile(_JPGPHOTO);

             sBmp.Free;
             kjpg.Free;

             sFileName := _JPGPHOTO;

    이 뒤에 INSERT 문을 써서 바로 저장합니다.

    좋은 방법이 있으면 좀 가르쳐주십시오!




    ***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)
  • Profile
    박상윤 2002.01.08 23:41
    bmp,jpeg 를 반복하는 것은 해상도에 전혀 도움이 돼지않습니다.
    오히려 스트래치 하거나 bmp변환시 해상도가 맞지 않아서
    더 안좋게 나올수도 있습니다.제가 이미지프로세싱이 전공이라
    믿으셔두 됩니다.(옛날 나노시스 그래픽강좌 있었죠 제가 만든거에여^^)
    음 일단은 jpg옵션들을 살펴 봐야 할것 같습니다.
    이미지를 줄인다던지 키우면 이미지가 역시 망가 질수 있구여.

    type TJPEGPixelFormat = (jf24Bit, jf8Bit);
    property PixelFormat: TJPEGPixelFormat;

    property Smoothing: Boolean;

    type TJPEGPerformance = (jpBestQuality, jpBestSpeed);
    property Performance: TJPEGPerformance;

    type TJPEGQualityRange = 1..100;
    property CompressionQuality: TJPEGQualityRange

    등을 조절하셔야 할것 같습니다.
    가장 먼저 포맷
    다음은 QualityRange
    Smoothing 다음
    퍼포먼스..
    등을 순서대로 한번 해보세여...
    그럼^^





    ***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)
    • 오진욱
    • 2002.01.09 00:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 동키호테
      2002.01.09 15:56
      저도 예전에 찾아봤는데 아직까진 없더군요. 두번째 질문은 저장할 때 암호화해서 저장하고, 읽어올때 ...
    • 이훈
      2002.01.10 16:30
      지금 나와 있는데요 쉐어라는 점이 .... 데모용은 4자까지 복구되는군요 이런것을 올리기에는 좀 그러...
    • 김강수
      2002.01.09 02:59
      ㅡㅡ; 정말 질문이 막막하네여... 구체적으로 질문 바랍니다. 저두 C/S기반 3년 넘도록 프로그램 개발한 ...
    • 이경문
      2002.01.10 01:56
      이런 일련의 루틴을 static method, meta method라고도 합니다. 즉 멤버 클래스가 없어도 실행이 될 수 있...
    • 동키호테
      2002.01.09 15:58
      냉무 라고 쓰고 싶지만 아무래도 ...
    • 김성구
    • 2002.01.08 20:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.01.09 00:56
      안녕하세요. 최용일입니다. 아마도 인증에 문제가 있지 않나 생각되는데요... 이 경우는 ocx가 아니라 c...
    • 김성구
      2002.01.10 23:05
      감사,감사
    • 장진웅
    • 2002.01.08 19:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 마피오소
      2002.01.09 00:24
      www.devexpress.com 에 한번 가보세요 TreeList 나 OrgChart 같은 콤포넌트가 있습니다. 데모를 보시면...
    • 최용일
      2002.01.09 00:42
      안녕하세요. 최용일입니다. IE의 핸들을 찾아서 WM_CLOSE메세지를 보내세요... procedure TForm1.But...
    • 김윤호
      2002.01.08 19:47
      아이템을 dbcombobox에 등록해주셔야 합니다. dbcombobox에는 특정값을 가져오지.. 해당 필드의 리스트를 ...
    • 이한별
      2003.12.27 03:16
      ***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)
    • 이추형
    • 2002.01.08 18:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.01.08 23:44
      0001 - 00010001 - 000100010001 - 0001000100010001 이렇게 코드를 이용하여 해결은 했는데 (subnode처...
    • 빙고
    • 2002.01.08 18:44
    • 3 COMMENTS
    • /
    • 3 LIKES
    • 박상윤
      2002.01.08 20:04
      jpg 파일을 어떻게 읽으쎴는지 .. picture로 읽으셨나요..아님 TjpegImage로  읽으셨나요...
    • 빙고
      2002.01.08 22:25
      우선 답변주셔서 감사합니다. 일단 Select를 해서 사진을 가져온다음 아래와 같이 작업을 했습니다. 선...
    • 박상윤
      2002.01.08 23:41
      bmp,jpeg 를 반복하는 것은 해상도에 전혀 도움이 돼지않습니다. 오히려 스트래치 하거나 bmp변환시 해상...
    • 우정민
    • 2002.01.08 18:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2002.01.09 21:20
      안녕하세요. 데이터베이스명을 설정하는 것은 Database컴포넌트에서 하시거나 쿼리를 사용하셔야...
    • 백록화
      2002.01.08 20:38
      yo` 안녕하세요!! 백록화 입니다. :) 흠...TQuery랑 사용법이 비슷합니다. ^^;; 이부분이 잘못...
    • 최용일
      2002.01.08 18:43
      안녕하세요. 최용일입니다... ㅠ'ㅠ... High와 SizeOf함수를 이용하시면 됩니다.... procedure T...
    • 이성윤
    • 2002.01.08 10:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김규억
      2002.01.08 20:06
      저두 방화벽 적용 프로그램을 한 적이 있는데 부족하나마 답변해드립니다... 참고만 하세요... ...
    • 우정민
      2002.01.08 18:31
      글쎄요... 방화벽까진 잘 모르겠고... 내부 IP를 쓰는... PC의 경우엔 외부에서 한번에 접속할 길은 ...
    • 다롱이
    • 2002.01.08 09:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2002.01.08 16:53
      안녕하세요. procedure aa (var A, var B, var C: string); 이런 형태로 프로시져에 변수를 인자로 넘...
    • 최호준
      2002.01.09 03:09
           protected        procedure paint;overri...
    • 나옹이
    • 2002.01.08 07:50
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 김진혁
      2002.01.08 20:04
      -- 다른 방법이 하나 있느데요...이미지 콤포넌트의 strech를 true로 하시고요.. 프로그램에서 wid...
    • 나옹이
      2002.01.08 20:08
      strech = true 이구요.. height , width 를 원하는 사이즈로 조정하고.... 저장을 했는데요... 원...
    • 박상윤
      2002.01.08 23:27
      스트레치는 단지 보일때만 작용되는 것이고 내부 데이터는 같습니다. jpg라서 그런 것두 아니구여... 제...
    • 나옹이
      2002.01.09 01:01
      냅 감사합니다. canvas.copyrect() 로 해서 ... 고민은 해결됐습니다. 그런데... 이래저래 문제가 ...
    • 박상윤
      2002.01.08 18:57
      사이즈를 줄인다구 이미지가 주는 것은 아니지여. 내부의 bmp는 그대루 있으니까^^ 여러가지 방법이 있지...
    • 김진혁
      2002.01.09 01:58
      이런 허접이 답변을 쓰니까...문제 점이 생기는 군요... 저도 배워습니다..고맙습니다..꾸벅... ...
    • 박성훈
      2002.01.08 16:56
      안녕하세요. RxLib부터 설치하시는게 맞는거 같습니다. 혹시 RXCTL5.bpl을 시스템폴더에 복사했는지요?...
    • 궁뎅이
    • 2002.01.08 07:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2002.01.10 02:01
      TCP 차원의 connect, disconnect도 physical layer입장에서 보면 데이터의 송수신입니다. 컴퓨터를 꺼 버...
    • 김현수
    • 2002.01.08 05:01
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.01.08 18:33
      안녕하세요. 최용일입니다. Install Shield Professional v6.2 쓰는데 거기에 시리얼 넘버 설정하는 곳...
    • 박상윤
      2002.01.08 07:49
      인스톨 쉴드에 기본적인 기능이 시리얼 부여 기능입니다... 음 위저나. 빌드를 할때... 시디에 시리얼 ...
    • 이정욱
      2002.01.08 05:39
      인스톨쉴드는 잘은 모르지만 ^^; Wise Installasion System으로는 델파이와 DLL연동이 가능해서 DLL로 ...
    • 이한별
      2003.12.27 03:15
      ***** 운영자님에 의해서 게시물 이동 + 카테고리유지되었습니다 (2004-10-20 02:20)