Q&A

  • 확장자확인?
OpenPictureDialog에서 파일확장자가 JPEG일경우에 BMP로 바꿀려고
함수를 호출했는데 에러가자꾸뜨네요;;
혹시 확장자를 확인하는법은없나요?;;
2  COMMENTS
  • Profile
    오병주 2003.12.03 18:42
    파일 에 관련되 api함수 입니다

    이거보시면 다나오구여

    더 필요한 부분도 있을듯 싶네여..^^

    그럼 즐코 ~

    참 Uses 절에 ShellApi 추가하세요..^^

    procedure TForm1.GetFileInfo(FileName: String);
    var
      SHFinfo: TSHFileInfo;
      FindData: TWin32FindData;
      FindHandle :THandle;
    begin
      L_FileName.Caption := ExtractFileName(FileName); // 파일명(Name)

      ShGetFileInfo(PChar(FileName), 0, SHFinfo, SizeOf(SHFinfo), // 파일종류만 알아낸다
                    SHGFI_TYPENAME);
      L_Filetype.Caption := SHFinfo.szTypeName; // 파일종류(Type)

      FindHandle := Windows.FindFirstFile(PChar(FileName), FindData);
      try
        L_Filesize.Caption := FloatToStr(Trunc(FileSize(FindData.nFileSizeHigh, FindData.nFileSizeLow) / 1024))+' KB ('+
                              IntToStr(FileSize(FindData.nFileSizeHigh, FindData.nFileSizeLow))+' Bytes)';

        OldAttributes := FileGetAttr(FileName);  // 파일의 속성(attribute)
        CB_ReadOnly.Checked := (OldAttributes and faReadOnly) = faReadOnly;
        CB_Archive.Checked  := (OldAttributes and faArchive) = faArchive;
        CB_System.Checked   := (OldAttributes and faSysFile) = faSysFile;
        CB_Hidden.Checked   := (OldAttributes and faHidden) = faHidden;

        L_Created.Caption    := GetLocalTime(FindData.ftCreationTime);   // 파일생성일(Created)
        L_Modified.Caption   := GetLocalTime(FindData.ftLastWriteTime);  // 파일변경일(Modified)
        L_LastAccess.Caption := GetLocalTime(FindData.ftLastAccessTime); // 파일접근일(LastAccess)
      finally
        Windows.FindClose(FindHandle);
      end;
    end;

    보너스로

    // JPEG to bitmap
    procedure TForm1.Button1Click(Sender: TObject);
    var
    JPEG: TJPEGImage;
    Bitmap: TBitmap;
    begin
    JPEG := TJPEGImage.Create;
    try
       JPEG.LoadFromFile('Test.jpg');
       Bitmap := TBitmap.Create;
       try
         Bitmap.Assign(JPEG); // convert JPEG to BMP
         Bitmap.SaveToFile('Test.bmp');
         Image2.Picture.Graphic := Bitmap;
       finally
         Bitmap.Free;
       end;
    finally
       JPEG.Free;
    end;
    end;

    // bitmap to JPEG
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    JPEG : TJPEGImage;
    Bitmap: TBitmap;
    begin
      Bitmap := TBitmap.Create;
      try
        Bitmap.LoadFromFile('Test.bmp');
        JPEG := TJPEGImage.Create;
        try
          JPEG.Assign(Bitmap);
          JPEG.SaveToFile('Test.jpg');
          Image1.Picture.Graphic := JPEG;
        finally
          JPEG.Free;
        end;
      finally
        Bitmap.Free;
      end;
    end;

    JPE ===> BMP
    BMP ===> JPG

    변환..^^

    수고






  • Profile
    콩콩콩콩콩 2003.12.07 02:50
    고맙습니다^^
    그런데요 ㅇ ㅣ소스에서 GetFileInfo가 어디에서 나온건지좀;;
    에러가 나온다는데요;