Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
JPEG이미지를 이미지 콤포넌트에서......
안녕하세요....파라독스 DB에
필드로 확장자가 JPG인 이미지를 저장했는데, 그 이미지를 이미지 콤포넌트나 DBIMAGE 콤포넌트에서 읽어오지를 못합니다.
uses에 jpeg도 추가해 주었는데,,,,
급합니다.
꼭 가르쳐 주십시오....제발.....
1
COMMENTS
김영대
•
1999.10.19 05:42
임성룡 wrote:
> 안녕하세요....파라독스 DB에
필드로 확장자가 JPG인 이미지를 저장했는데, 그 이미지를 이미지 콤포넌트나 DBIMAGE 콤포넌트에서 읽어오지를 못합니다.
> uses에 jpeg도 추가해 주었는데,,,,
> 급합니다.
> 꼭 가르쳐 주십시오....제발.....
아래 소스를 참고해 보시고요 이것도 도움이 안되시면
제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의
"자료실(4) 를 보시면 "TJPEGImage, TDBJPEGImage" 콤포넌트가 있으니
사용해 보세요
[1] JPEG(JPG), BMP 를 DB에 저장하고 불러오기
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.
[2] DB에 저장된 JPEG(JPG)를 DBGrid에 출력하기
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, jpeg, extctrls, DBGrids;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Query1: TQuery;
Database1: TDatabase;
DBGridEH1: TDBGridEH;
procedure DBGridEH1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEH; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
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;
procedure TForm1.DBGridEH1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEH;
State: TGridDrawState);
var
JPGimage: TImage;
SRect, DRect: TRect;
begin
if Column.FieldName= 'PHOTO' then
begin
JPGimage := TImage.Create(Self);
JPEGLoadFromDB(TBlobField(Query1.FieldByName('PHOTO')), JPGimage);
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).Canvas.Draw(Rect.Left, Rect.Top, JPGimage.Picture.Graphic);
// Stretch 는 아래와 같이...
// TDBGrid(Sender).Canvas.StretchDraw(Rect, JPGimage.Picture.Graphic);
JPGimage.Free;
end
else // 다른 필드
begin
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
sun
•
1999.10.19 00:15
2
COMMENTS
/
0
LIKES
여러 DBedit 값의 합계를 하나의 DBEdit에 표현...?
배불뚝
•
1999.10.19 02:06
sun wrote: > 여러개의 DBEdit의 값을 하나의 DBEdit에다 합계로서 표현을 하고자 합니다. > > 어떻게...
한재필
•
1999.10.19 01:55
sun wrote: > 여러개의 DBEdit의 값을 하나의 DBEdit에다 합계로서 표현을 하고자 합니다. > > 어떻게...
임성룡
•
•
1999.10.19 00:16
1
COMMENTS
/
1
LIKES
JPEG이미지를 이미지 콤포넌트에서......
안녕하세요....파라독스 DB에 필드로 확장자가 JPG인 이미지를 저장했는데, 그 이미지를 이미지 콤포넌트나 DBIMAGE 콤포넌트에서 읽어오지를 못합니다. uses에 jpeg도 추가해 주었는데,,,, 급합니다. 꼭 가르쳐 주십시오....제발.....
김영대
•
1999.10.19 05:42
임성룡 wrote: > 안녕하세요....파라독스 DB에 필드로 확장자가 JPG인 이미지를 저장했는데, 그 이미지를...
bestcds
•
1999.10.19 00:12
1
COMMENTS
/
0
LIKES
중복자료체크는?
이재식
•
1999.10.19 02:59
bestcds wrote: > DBGrid와 DBEdit를 사용하여 입력화면을 만드었습니다. > 그리고 코드번호를 가지고 데...
sun
•
1999.10.19 00:12
1
COMMENTS
/
0
LIKES
칼럼의 합계의 다시 합계를 구할려면...?
오승섭
•
1999.10.19 01:53
안녕하세요.... 까망곰입니다....... 이렇게 하면 어떨까요...... SELECT SUM(SOFTCODE)+SUM(HARDCOST)...
송경아
•
1999.10.18 21:34
2
COMMENTS
/
0
LIKES
delphi에서두 background 실행이 되나여?
박지훈.임프
•
1999.10.24 20:08
송경아 wrote: > 프로그램을 background로 실행 시킬 수 있는 api 함수가 있는지 알고 싶습니다. > (유닉...
김영대
•
1999.10.19 05:49
송경아 wrote: > 프로그램을 background로 실행 시킬 수 있는 api 함수가 있는지 알고 싶습니다. > (유닉...
이양규
•
1999.10.18 20:44
4
COMMENTS
/
0
LIKES
SQL Error좀 봐주세요...
배불뚝
•
1999.10.18 23:53
요렇게 해보세용 with query1 do begin close; sql.clear; sql.add('SELECT id, sp...
이양규
•
1999.10.19 00:24
감사합니다. 성공했어요.... 왜 진작 이렇게 안했는지 ... 후후~~ 전 파라미터는 잘 안써서... 땡큐! ...
오승섭
•
1999.10.18 22:10
글쎄.. 파라독스DB에서는 Date Type이 어떻게 표시되는지는 모르겠지만, 일반적으로 Date Type을 Query해...
이양규
•
1999.10.18 22:36
답변 감사합니다. 그런데 TQuery.SQL 이 TString형으로 정의 되어 있는데 거기에 저장하는 자료를 어떻게...
이은주
1999.10.18 20:37
0
COMMENTS
/
0
LIKES
ChartFx에서 EOlesyserror???
송수현
•
1999.10.18 20:30
1
COMMENTS
/
0
LIKES
panel위의 panel을
박지훈.임프
•
1999.10.24 19:32
송수현 wrote: > 안녕하세요 ^^; > > 질문을 여러번 올렸는데 질문의 요지가 불명확했는지 답변이 없어...
왕초보
•
1999.10.18 20:29
1
COMMENTS
/
0
LIKES
드래그....?
김영대
•
1999.10.19 05:57
왕초보 wrote: > run time시 동적으로 여러개의 버튼들이 생성되었을때 > 그 버튼들을 각각 드래그하려...
나원용
•
1999.10.18 19:45
2
COMMENTS
/
0
LIKES
브라우저로 dll받기.
화랑
•
1999.10.18 20:18
안녕하세요.. 화랑입니다.. Active Form에서 Web Deploy를 할때 Option 에서 Additional Files에서 ...
이은주
•
1999.11.27 20:19
안녕하세요. activeX를 마악 개발하려는 초보입니다. 제 경우는 addtional file로 등록해야 하는 파일...
조현덕
•
1999.10.18 19:36
1
COMMENTS
/
0
LIKES
MID Form에서 ScrollBar가 생성되지 않게 하고 싶습니다.
박지훈.임프
•
1999.10.24 19:38
조현덕 wrote: > MID Form에서 ScrollBar가 생성되지 않게 하고 싶습니다. > > Property의 AutoScr...
Lumad
•
1999.10.18 19:19
2
COMMENTS
/
0
LIKES
델파이에서 과연 [HWP][PDF] 출력이가능한가???
박지훈.임프
•
1999.10.24 20:10
Lumad wrote: > > 전 지금 굉장히 큰문제에 봉착해 있습니다. > > 레포트에서 하단에 정해진 크기의 ...
김영대
•
1999.10.19 05:55
Lumad wrote: > > 전 지금 굉장히 큰문제에 봉착해 있습니다. > 레포트에서 하단에 정해진 크기의 자리...
나원용
•
1999.10.18 18:22
1
COMMENTS
/
0
LIKES
오라클 업데이트 에러....
이재식
•
1999.10.19 02:40
나원용 wrote: > 안녕하세요? > 마이다스를 사용하여 데이터 베이스 프로그래밍을 하는 도중 > 에러가 ...
김영진
•
1999.10.18 18:12
1
COMMENTS
/
0
LIKES
DBCHART에 관해서
이재식
•
1999.10.19 02:44
김영진 wrote: > DBCHART에 관한 질문인데요 > 실행중에 DBCHART에 연결된 테이블을 바꾸어 동적으로 > ...
박성훈
1999.10.18 04:23
0
COMMENTS
/
0
LIKES
StringList를 생성된 폼으로 넘겨주기
박성훈
•
1999.10.18 03:46
1
COMMENTS
/
0
LIKES
특정 컴포넌트의 바닥위치 구하기
박지훈.임프
•
1999.10.24 19:40
박성훈 wrote: > 폼위의 특정 컴포넌트의 바닥위치를 구하고 싶은데 잘 안돼서요. > 예를 들어 패널을 클...
아! 초보
•
1999.10.18 00:04
1
COMMENTS
/
0
LIKES
바뀐 색깔을 저장하려면....
유도삼
•
1999.10.18 20:05
아! 초보 wrote: > 도사님들! 답 좀 주세여~~~~어~~~ > > 저도 언젠가는 초보 운전 딱지를 떼고 ...
이의준
1999.10.17 23:29
0
COMMENTS
/
0
LIKES
퀵레포트에서 Progress Bar 사용하기???
Brainbox
•
1999.10.17 21:12
1
COMMENTS
/
0
LIKES
treeview에서 Drag&Drop?
김영대
•
1999.10.19 06:09
Brainbox wrote: > TreeView에서 window탐색기 처럼 마우스로 하위 item을 선택해서 상위item으로 드래그 ...
덜보이
•
1999.10.17 20:53
1
COMMENTS
/
0
LIKES
프로그램이 실행될때 기존 실행되는 application을 방해하지 않으려면
이정욱
•
1999.10.18 01:58
타이머로 작동이 된가면 자기혼자 포커스를 가져가지 않습니다. 굳이 자기에게 포커스를 가져가게 하는 명...
임성룡
1999/10/19 00:16
Views
475
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요....파라독스 DB에
> uses에 jpeg도 추가해 주었는데,,,,
> 급합니다.
> 꼭 가르쳐 주십시오....제발.....
아래 소스를 참고해 보시고요 이것도 도움이 안되시면
제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의
"자료실(4) 를 보시면 "TJPEGImage, TDBJPEGImage" 콤포넌트가 있으니
사용해 보세요
[1] JPEG(JPG), BMP 를 DB에 저장하고 불러오기
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.
[2] DB에 저장된 JPEG(JPG)를 DBGrid에 출력하기
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, jpeg, extctrls, DBGrids;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Query1: TQuery;
Database1: TDatabase;
DBGridEH1: TDBGridEH;
procedure DBGridEH1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEH; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
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;
procedure TForm1.DBGridEH1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEH;
State: TGridDrawState);
var
JPGimage: TImage;
SRect, DRect: TRect;
begin
if Column.FieldName= 'PHOTO' then
begin
JPGimage := TImage.Create(Self);
JPEGLoadFromDB(TBlobField(Query1.FieldByName('PHOTO')), JPGimage);
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).Canvas.Draw(Rect.Left, Rect.Top, JPGimage.Picture.Graphic);
// Stretch 는 아래와 같이...
// TDBGrid(Sender).Canvas.StretchDraw(Rect, JPGimage.Picture.Graphic);
JPGimage.Free;
end
else // 다른 필드
begin
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end.