Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
DB의 그림 필드가 bmp인지? jpg인지?
안녕하세요.
오라클 DB에 사진이나 사인등이 저장되어 있습니다.
그런데 bmp와 jpg를 구분하지 않은 상태입니다.
새로운 서버로 옮기려 하는데 DB에서 읽어들일때 그 데이타가 bmp인지 jpg인지
알수 있는 방법이 없을까요? 부탁드립니다.
4
COMMENTS
innover
•
2001.12.19 23:52
델파이에서는 TPicture 가 이미지를 관리하는 컨테이너입니다.
TPicture의 Graphic 프로퍼티의 클래스를 확인해서 종류를 알 수 있습니다.
예를 들면 다음과 같이 할 수 있겠죠?
if DBImage.Picture.Graphic is TJpegImage then ShowMessage('jpg');
if DBImage.Picture.Graphic is TBitmap then ShowMessage('bmp');
프로그램에서 다양하게 가변적인 클래스 종류를 확인하고 싶으시다면 ClassName 프로퍼티를 이용해보세요.
ShowMessage('Picture has ' + DBImage.Picture.Graphic.ClassName);
빙고 wrote:
> 안녕하세요.
> 오라클 DB에 사진이나 사인등이 저장되어 있습니다.
> 그런데 bmp와 jpg를 구분하지 않은 상태입니다.
>
> 새로운 서버로 옮기려 하는데 DB에서 읽어들일때 그 데이타가 bmp인지 jpg인지
> 알수 있는 방법이 없을까요? 부탁드립니다.
0
0
삭제
수정
댓글
빙고
•
2001.12.20 00:00
답변주신거는 혹시 컴포넌트중 TDBImage를 쓰신경우인가요?
전 그냥 기존 DB에서 Select 해와서 그걸 파일처리해서 직접 다른 서버에 Insert 하려고
하거든요~
그런 경우도 이렇게 하면 되나여?
innover wrote:
> 델파이에서는 TPicture 가 이미지를 관리하는 컨테이너입니다.
> TPicture의 Graphic 프로퍼티의 클래스를 확인해서 종류를 알 수 있습니다.
> 예를 들면 다음과 같이 할 수 있겠죠?
>
> if DBImage.Picture.Graphic is TJpegImage then ShowMessage('jpg');
> if DBImage.Picture.Graphic is TBitmap then ShowMessage('bmp');
>
> 프로그램에서 다양하게 가변적인 클래스 종류를 확인하고 싶으시다면 ClassName 프로퍼티를 이용해보세요.
>
> ShowMessage('Picture has ' + DBImage.Picture.Graphic.ClassName);
>
0
0
삭제
수정
댓글
전철호
•
2001.12.19 11:58
// GIF, Jpeg 해더부분
TGifHeader = packed record
Signature : array[0..2] of char; { contains 'GIF' }
Version : TGIFVersionRec; { '87a' or '89a' }
end;
TJpegHeader = packed record
StartImage : Word; // unsigned Short Int (2byte)
Reserved : Word; // unsigned Short Int (2byte)
Reserved2 : Word; // unsigned Short Int (2byte)
JpegFormat : array[0..13] of Char;
end;
// 다음은 GIF,JPEG, Bitmap인지를 판단하여 TImage에 보여주는 부분입니다.
procedure ReadPicCheck(Stream: TStream; var Buffer; Size: LongInt);
var
ReadSize : integer;
begin
ReadSize := Stream.Read(Buffer, Size);
if (ReadSize <> Size) then
MessageDlg('그래픽 스트림을 읽을 수 없습니다 !!.',mtWarning,[mbOK],0);
end;
procedure TMainForm.GetPicture(pstdno : string);
var
G : TStream;
Tmp : TStream;
GifHeader : TGifHeader;
JpegHeader : TJpegHeader;
begin
with DM.Qry1 do
begin
Close;
Sql.Clear;
Sql.Add('SELECT * FROM stmphoto '+
' WHERE stdno = :lstdno ');
ParamByName('lstdno').AsString := DM.Qry2.FieldByName('stdno').AsString;
Open;
if not Eof then
begin
G := CreateBlobStream(TBlobField(FieldByName('stdphoto')),bmRead);
G.Seek(0,soFromBeginning);
ReadPicCheck(G, GifHeader, Sizeof(GifHeader));
if (UpperCase(GifHeader.Signature) = 'GIF') then
begin
// 이부분에서 GIF 이미지를 읽어들이면 됩니다.
end
else
begin
G.Seek(0,soFromBeginning);
ReadPicCheck(G, JpegHeader, Sizeof(JpegHeader));
if (JpegHeader.StartImage <> $d8ff) and (JpegHeader.Reserved <> $e0ff) then
begin
Img_stdphoto.Picture.Assign(FieldByName('stdphoto'));
end
else
begin
// 이부분에서 Jpeg 이미지를 읽어들이면 됩니다.
end;
end;
FPicIns := False;
end
else
begin
Img_stdphoto.Picture.Assign(Img_Temp.Picture);
FPicIns := True;
end;
Close;
end;
end;
0
0
삭제
수정
댓글
빙고
•
2001.12.19 23:55
전철호님 답변주셔서 감사합니다.
그런데요 죄송하게도 제가 모자라다보니 이해를 잘 못하겠어여..흐흑
한 서버에 사진 테이블이 있고요, 거기서 Select 해와서 그 테이블의 그림필드가
jpg 이면 어떠한 변환작업을 한 후/Bmp 이면 그냥 또 다른 서버의 사진 테이블에
구분을 줘서 저장하려하거든요!
jpg나 bmp중 하나를 알면 else 써서 다른건 jpg가 아니면 btm처리 식으로 하려는데
님의 소스를 보고서 아무리 궁리를 해도 머리가 딸아주지 않아서리..흐흑
님의 답변을 잘 숙지못하여 죄송한데 좀 쉽게 가르쳐주시면 감사하겠습니다.
죄송합니다.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이형욱
•
2001.12.19 20:12
1
COMMENTS
/
0
LIKES
DBGrid 두개 겹쳐있을때 화면전환...
탁발승
•
2001.12.19 20:23
dbgrid1.visible := false; dbgrid2.visible := true; 이런식으로 해보세염... 철자가 맞았는지는 잘 ...
거북이
•
2001.12.19 20:10
1
COMMENTS
/
0
LIKES
sql server가 왜 느려졌을까?
버섯
•
2001.12.19 22:15
거북이 wrote: > sql server 6.5 사용잡니다. > > delphi프로그램에서 레코드를 생성하는데, > > 60...
3107
2001.12.19 20:05
0
COMMENTS
/
0
LIKES
공통유닛의 사용
초보
•
2001.12.19 19:53
2
COMMENTS
/
0
LIKES
수정한 실행프로그램(EXE)을 사용자에게 자동 적용시키려면
사발우성
•
2001.12.19 21:36
하이 촙 사발입니다. 제 경우는요... ini파일에 rev정보를 담아 두었다가.. rev를 관리하는 db와 비교 해...
탁발승
•
2001.12.19 20:46
프로그램이 실행되기 전에 클라이언트 프로그램의 날짜를 비교해서 만약 서버에 저장되어 있는 프로그램의 ...
cdw
2001.12.19 19:52
0
COMMENTS
/
0
LIKES
tfontcombobox 컴포넌트 구할 수 없나요??
델파이를 사랑하는 사
2001.12.19 19:12
0
COMMENTS
/
0
LIKES
차트에서 페이징 문제....(고수님들 부탁합니다.)
김종길
•
2001.12.19 10:54
1
COMMENTS
/
0
LIKES
sql입력시에러..
한하눌
•
2001.12.19 19:12
excesql 문을 실행하기이전에 sql.savetofile('c:debug.sql'); 문을 삽입한뒤 해당프로그램을 실행하시면...
막대기
2001.12.19 09:37
0
COMMENTS
/
0
LIKES
이런것이 가능할까여...
정초보
2001.12.19 06:58
0
COMMENTS
/
0
LIKES
인터베이스에서 드롭시킨디비를 복구 못하나요?
빙고
•
2001.12.19 06:57
4
COMMENTS
/
0
LIKES
DB의 그림 필드가 bmp인지? jpg인지?
안녕하세요. 오라클 DB에 사진이나 사인등이 저장되어 있습니다. 그런데 bmp와 jpg를 구분하지 않은 상태입니다. 새로운 서버로 옮기려 하는데 DB에서 읽어들일때 그 데이타가 bmp인지 jpg인지 알수 있는 방법이 없을까요? 부탁드립니다.
innover
•
2001.12.19 23:52
델파이에서는 TPicture 가 이미지를 관리하는 컨테이너입니다. TPicture의 Graphic 프로퍼티의 클래스를 ...
빙고
•
2001.12.20 00:00
답변주신거는 혹시 컴포넌트중 TDBImage를 쓰신경우인가요? 전 그냥 기존 DB에서 Select 해와서 그걸 파일...
전철호
•
2001.12.19 11:58
// GIF, Jpeg 해더부분 TGifHeader = packed record Signature : array[0..2] of char; { contains 'GI...
빙고
•
2001.12.19 23:55
전철호님 답변주셔서 감사합니다. 그런데요 죄송하게도 제가 모자라다보니 이해를 잘 못하겠어여..흐흑 ...
따식이
•
2001.12.19 06:11
1
COMMENTS
/
0
LIKES
Data Controls 컴포넌트 텝의 DBImage 사용법좀....ㅠㅠ
잘난체
•
2001.12.19 19:10
따식이 wrote: 안녕하세요 델파이를 공부하는 학생입니다.. 제가 요즘 동아리 회원을 관리하는 프로그...
델파이초보
•
2001.12.19 05:46
3
COMMENTS
/
0
LIKES
0x02인 값을 char값으로 전환하고 싶은데
srookie
•
2001.12.19 05:57
델파이초보 wrote: > 님들아 숫자를 그값에 맞는 ansii character로 전환하고 싶거든요 > 헬프를 찾아도...
델파이초보
•
2001.12.19 19:32
님아 감사합니다. 그럼 string을 byte값으로 변환하는 함수는 있나요? 있으면 갈쳐주세요. edit1.text :...
srookie
•
2001.12.19 21:53
델파이초보 wrote: > 님아 감사합니다. > 그럼 string을 byte값으로 변환하는 함수는 있나요? > 있으면 ...
권윤수
•
2001.12.19 05:22
1
COMMENTS
/
0
LIKES
맞아죽을 각오를 하고 한번만 더 여쭙겠습니다. 제발...
민주사랑
•
2001.12.21 02:33
권윤수 wrote: > MDI Child를 dll로 만들어 쓰고 있습니다. 책을 찾고, 인터넷을 뒤지고...끙끙거리며 어...
모르는이
2001.12.19 04:56
0
COMMENTS
/
0
LIKES
Dll 에러 인데요. 고수님들.. 도와주세요
이한호
2001.12.19 04:29
0
COMMENTS
/
0
LIKES
ASYNCPro 컴포넌트를 구해주세요~~~
박태원
•
2001.12.19 04:02
1
COMMENTS
/
0
LIKES
인터베이스의 db 생성과 1, 2차인덱스화일 생성
명탁
•
2001.12.20 03:07
박태원 wrote: > 안녕하세요 > 한델을 애용하는 회원입니다. > 델파이5.0 win2000을 사용하고 있읍니다...
namush
2001.12.19 03:22
0
COMMENTS
/
0
LIKES
ACCESS Query문
초보자..
2001.12.19 02:38
0
COMMENTS
/
0
LIKES
db그리드에서 특정 칼럼의 폰트 색을 바꿀려면 어떻게 해야 하나요?
바이오맨(초보)
2001.12.19 02:04
0
COMMENTS
/
0
LIKES
winexec 에 대해서
초보
•
2001.12.19 01:53
1
COMMENTS
/
0
LIKES
오라클에서 그룹별로 순번 정하는 방법
김하늘
•
2001.12.19 05:31
오라클 8i부터는 오라클 SQL이 기능이 더 좋아졌슴다... 이거 8버전까지도 안되다가 8i버전부터는 되더군...
빙고
2001/12/19 06:57
Views
235
Likes
0
Comments
4
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
TPicture의 Graphic 프로퍼티의 클래스를 확인해서 종류를 알 수 있습니다.
예를 들면 다음과 같이 할 수 있겠죠?
if DBImage.Picture.Graphic is TJpegImage then ShowMessage('jpg');
if DBImage.Picture.Graphic is TBitmap then ShowMessage('bmp');
프로그램에서 다양하게 가변적인 클래스 종류를 확인하고 싶으시다면 ClassName 프로퍼티를 이용해보세요.
ShowMessage('Picture has ' + DBImage.Picture.Graphic.ClassName);
빙고 wrote:
> 안녕하세요.
> 오라클 DB에 사진이나 사인등이 저장되어 있습니다.
> 그런데 bmp와 jpg를 구분하지 않은 상태입니다.
>
> 새로운 서버로 옮기려 하는데 DB에서 읽어들일때 그 데이타가 bmp인지 jpg인지
> 알수 있는 방법이 없을까요? 부탁드립니다.