Q&A

  • 이미지의 크기....
안녕하세요..

초심 프로그램머 입니다.



다름이 아니라... Image의 원크기을 알려고 합니다.

무슨 말이냐면요...



만약에 하나의 이미지가 있읍니다.

이 이미지의 크기가 600 * 800이라면...



이름 이미지 박스에 넣었읍니다..



그런데 이미지 박스의 크기는 200 * 400 입니다.

그리고 streach을 true로 해주면 이미지의 크기는 200 * 400으로 나오겠죠..



하지만 전 600 * 800의 값을 원합니다..

물론 여기까지는 제가 600 * 800이라는 값을 알고 있으니 다행이지만 모를 경우

어떻게 구할수 있을 까요...



고수님들의 많은 도움 부탁드립니다.

그럼 이만...



2  COMMENTS
  • Profile
    이상호 1999.11.02 07:47
    이미지의 Width와 Height가 아닌 이미지가 담고 있는

    비트맵의 Width와 Height는 아래와 같이 구하면 제일 쉽습니다.



    width := image.picture.bitmap.width;

    height := image.picture.bitmap.height;



    손창근 wrote:

    > 안녕하세요..

    > 초심 프로그램머 입니다.

    >

    > 다름이 아니라... Image의 원크기을 알려고 합니다.

    > 무슨 말이냐면요...

    >

    > 만약에 하나의 이미지가 있읍니다.

    > 이 이미지의 크기가 600 * 800이라면...

    >

    > 이름 이미지 박스에 넣었읍니다..

    >

    > 그런데 이미지 박스의 크기는 200 * 400 입니다.

    > 그리고 streach을 true로 해주면 이미지의 크기는 200 * 400으로 나오겠죠..

    >

    > 하지만 전 600 * 800의 값을 원합니다..

    > 물론 여기까지는 제가 600 * 800이라는 값을 알고 있으니 다행이지만 모를 경우

    > 어떻게 구할수 있을 까요...

    >

    > 고수님들의 많은 도움 부탁드립니다.

    > 그럼 이만...

    >

  • Profile
    김영대 1999.10.14 03:34
    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, ExtCtrls;



    type

    TForm1 = class(TForm)

    Image1: TImage;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    var

    Info: PBitmapInfo;

    InfoSize: Integer;

    ImageSize: Longint;

    Image: Pointer;

    begin

    // 아래 예제는 Image1.Picture.Bitmap의 높이와 폭을 구하는 예제입니다

    // 더 많은 정보를 원하시면 윈도우즈 API 도움말에서 BITMAPINFOHEADER 로

    // 검색해 보시면 아래와 같은 구조체의 정보가 있습니다

    // typedef struct tagBITMAPINFOHEADER{

    // DWORD biSize;

    // LONG biWidth;

    // LONG biHeight;

    // WORD biPlanes;

    // WORD biBitCount

    // DWORD biCompression;

    // DWORD biSizeImage;

    // LONG biXPelsPerMeter;

    // LONG biYPelsPerMeter;

    // DWORD biClrUsed;

    // DWORD biClrImportant;

    // } BITMAPINFOHEADER;



    GetDIBSizes(Image1.Picture.Bitmap.Handle, InfoSize, ImageSize);

    GetMem(Info, InfoSize);

    try

    GetMem(Image, ImageSize);

    try

    GetDIB(Image1.Picture.Bitmap.Handle, Image1.Picture.Bitmap.Palette, Info^, Image^);

    ShowMessage('폭: '+IntToStr(Info^.bmiHeader.biWidth));

    ShowMessage('높이: '+IntToStr(Info^.bmiHeader.biHeight));

    finally

    FreeMem(Image, ImageSize);

    end;

    finally

    FreeMem(Info, InfoSize);

    end;

    end;



    end.