Q&A

  • *.jpeg paradox에 등록
사진관리 프로그램하는 초보입니다.

*.bmp file는 DBImage1-->Table1Field, Table1Field-->DBImage1 가능한데

*.jpg는 안됩니다.

Bitmap는 bmp만 가능한지, 아니면 jpg도 가능한지 궁궁합니다.

그럼 수고하세요.

1  COMMENTS
  • Profile
    김영대 1999.11.22 19:05
    류재국 wrote:

    > 사진관리 프로그램하는 초보입니다.

    > *.bmp file는 DBImage1-->Table1Field, Table1Field-->DBImage1 가능한데

    > *.jpg는 안됩니다.

    > Bitmap는 bmp만 가능한지, 아니면 jpg도 가능한지 궁궁합니다.

    > 그럼 수고하세요.



    JPEG(JPG) 를 처리하는 다른 몇가지 정보를 보시려면

    제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의

    "Delphi Tip" 에서

    "JPEG" 또는 "JPG" 키워드로 검색해 보세요



    unit DbJpeg;



    interface



    uses

    Db, ExtCtrls, Classes, Graphics, Jpeg, SysUtils;



    implementation



    procedure JPEGSaveToDB(BlobField: TBlobField; FileName: String);

    var

    jpg: TJPEGImage;

    bmp: TBitmap;

    mem: TMemoryStream;

    begin

    if LowerCase(ExtractFileExt(FileName)) = '.jpg' then

    begin

    with BlobField do

    begin

    // 아래 DataSet.Edit; 는 저장된 그림을 수정(UPDATE)시 사용하며

    // 신규 등록(INSERT)일때는 DataSet.Insert; 로 바꾸어야 한다

    DataSet.Edit;

    LoadFromFile(FileName);

    DataSet.Post;

    end;

    end

    else if LowerCase(ExtractFileExt(FileName)) = '.bmp' then

    begin

    // 파일이 BMP 이면 먼저 JPEG(JPG) 파일로 바꾼 후 저장한다

    bmp := TBitmap.Create;

    jpg := TJPEGImage.Create;

    mem := TMemoryStream.Create;

    try

    bmp.LoadFromFile(FileName);

    jpg.Assign(bmp);

    jpg.SaveToStream(mem);

    mem.Position := 0;

    with BlobField do begin

    DataSet.Edit;

    LoadFromStream(mem);

    DataSet.Post;

    end;

    finally

    mem.Free;

    jpg.Free;

    bmp.Free;

    end;

    end

    end;



    procedure JPEGLoadFromDB(BlobField: TBlobField; Image: TImage);

    var

    jpg: TJPEGImage;

    mem: TMemoryStream;

    begin

    jpg := TJPEGImage.Create;

    mem := TMemoryStream.Create;

    try

    if BlobField.IsNull then

    Image.Picture := nil

    else begin

    BlobField.SaveToStream(mem);

    mem.Position := 0;

    jpg.LoadFromStream(mem);

    Image.Picture.Graphic := jpg;

    end;

    finally

    mem.Free;

    jpg.Free;

    end;

    end;



    end.