Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
이미지 파일의 사이즈(A4, B4...)
Bmp나 Jpg파일의 사이즈를 A4, B4등의 크기로 지정하여 저장하고자 합니다.
그런데 이게 잘 안되는군요.
아마도 리소스 문제인듯 한데...
암튼 이미지의 사이즈를 크게 해서 저장하고자 할때 좋은 방법이 있는지요?
일단 이미지의 사이즈(Width, Height)에 값을 지정(큰 값)하는 순간에
에러가 발생합니다.
여러 델피언의 조언 부탁합니다.
그럼 좋은 나날 되세요.
1
COMMENTS
김영대
•
2000.01.13 19:13
유도삼 wrote:
> Bmp나 Jpg파일의 사이즈를 A4, B4등의 크기로 지정하여 저장하고자 합니다.
> 그런데 이게 잘 안되는군요.
> 아마도 리소스 문제인듯 한데...
> 암튼 이미지의 사이즈를 크게 해서 저장하고자 할때 좋은 방법이 있는지요?
> 일단 이미지의 사이즈(Width, Height)에 값을 지정(큰 값)하는 순간에
> 에러가 발생합니다.
> 여러 델피언의 조언 부탁합니다.
> 그럼 좋은 나날 되세요.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image_src: TImage;
Image_dst: 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
// 원본 그림
Image_src.Picture.LoadFromFile('cute.bmp');
// 아래는 Image_src.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(Image_src.Picture.Bitmap.Handle, InfoSize, ImageSize);
GetMem(Info, InfoSize);
try
GetMem(Image, ImageSize);
try
GetDIB(Image_src.Picture.Bitmap.Handle, Image_src.Picture.Bitmap.Palette, Info^, Image^);
Image_src.Width := Info^.bmiHeader.biWidth; // 실제 폭
Image_src.Height := Info^.bmiHeader.biHeight; // 실제 높이
finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
// 원본의 2배로 늘려본다
Image_dst.Width := Image_src.Width * 2;
Image_dst.Height := Image_src.Height * 2;
// 크기가 변경된 그림
Image_dst.Canvas.CopyRect(Rect(0,0, Image_dst.Width, Image_dst.Height),
Image_src.Canvas,
Rect(0, 0, Image_src.Width, Image_src.Height));
Image_dst.Picture.SaveToFile('Stretched_cute.bmp');
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
여영식
2000.01.13 19:40
0
COMMENTS
/
0
LIKES
서수영씨 보세요...
송현경
2000.01.13 19:24
0
COMMENTS
/
0
LIKES
StringGrid에서 2Row를 1Row처럼 쓰려면..
델 초보자
2000.01.13 19:16
0
COMMENTS
/
0
LIKES
이렇게 도움을 또 청합니다.. ^^;;
초보왕
•
2000.01.13 19:12
1
COMMENTS
/
0
LIKES
에러메세지에대한궁금증
김영대
•
2000.01.13 19:14
초보왕 wrote: > 실행중에 EAccess Violation 이라는 메세지가 나오는데 > 원인 및 해결방법이 있으시면 ...
궁금이
•
2000.01.13 19:12
1
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
김영대
•
2000.01.13 19:17
궁금이 wrote: > 화면의 ListView에있는 일반 String값을 그대로 > QuickReport로 출력하려고합니다. > ...
박성훈
2000.01.13 19:08
0
COMMENTS
/
0
LIKES
QuickReport에서 조건에 따라 출력하기
은종범
•
2000.01.13 18:41
1
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
김영대
•
2000.01.13 19:10
은종범 wrote: > 안녕하십니까? > 저는 WinNT를 사용하고 있는데.... > 현재 네트워크로 연결이 된 전체...
강성준
•
2000.01.13 18:32
2
COMMENTS
/
0
LIKES
TwebBrowser 에서 Tab 키를 사용하려면 어떻게 합니까...?
전철호
•
2000.01.15 04:39
강성준 wrote: > 보통 익스프롤로에는 Tab를 누르면 링크나 . 텍스트필드나 버튼들을 > > 이동하는데 T...
전철호
•
2000.01.15 04:39
강성준 wrote: > 보통 익스프롤로에는 Tab를 누르면 링크나 . 텍스트필드나 버튼들을 > > 이동하는데 T...
브루스 리
2000.01.13 17:31
0
COMMENTS
/
0
LIKES
퀵레포트 패치후 컴포넌트가 안 올라 옵니다.
맨발의 청춘
2000.01.13 14:55
0
COMMENTS
/
0
LIKES
SQL 계산필드에 대해서...
초보자
2000.01.13 07:35
0
COMMENTS
/
0
LIKES
원격지에서 DB를 공유하려면?
화이트
2000.01.13 07:22
0
COMMENTS
/
0
LIKES
DBLookupCombo에서 코드명을 읽을려면 어떤 메소드로 읽어오는지,제발 가르쳐주세요.
sayfriend
2000.01.13 07:21
0
COMMENTS
/
0
LIKES
TreeView와 DB와의 연동
김한수
2000.01.13 07:18
0
COMMENTS
/
0
LIKES
OLE출력
유도삼
•
2000.01.13 06:14
1
COMMENTS
/
0
LIKES
이미지 파일의 사이즈(A4, B4...)
Bmp나 Jpg파일의 사이즈를 A4, B4등의 크기로 지정하여 저장하고자 합니다. 그런데 이게 잘 안되는군요. 아마도 리소스 문제인듯 한데... 암튼 이미지의 사이즈를 크게 해서 저장하고자 할때 좋은 방법이 있는지요? 일단 이미지의 사이즈(...
김영대
•
2000.01.13 19:13
유도삼 wrote: > Bmp나 Jpg파일의 사이즈를 A4, B4등의 크기로 지정하여 저장하고자 합니다. > 그런데 이...
최재원
•
2000.01.13 04:22
3
COMMENTS
/
0
LIKES
DBGrid에서 multi select 한것만 프린트???
구창민
•
2000.01.13 04:41
최재원 wrote: > 수고들 하십니다. > > 혹시 DBGrid에서 multi select 한 레코드들만 프린트 할 수 있...
최재원
•
2000.01.13 22:00
구창민 wrote: > 최재원 wrote: > > 수고들 하십니다. > > > > 혹시 DBGrid에서 multi select 한 레코...
구창민
•
2000.01.13 22:15
uses 에 DB 추가하셨나 확인해보세요. 참고로, TBookMark는 TPoint형입니다. 그럼 즐거운 프로그래밍 되...
김영애
•
2000.01.13 04:05
1
COMMENTS
/
0
LIKES
서버의 호스트이름을 알아낼수 있는 방법은요?
구창민
•
2000.01.13 04:49
김영애 wrote: > 프로그램 맨 처음 실행시 c:winnt (or c:window)에 ini파일을 생성합니다. > 그 다음으...
이곤섭
2000.01.13 04:03
0
COMMENTS
/
0
LIKES
updatesql중에서 수정과 삭제시에 update failed~~~
전기봉
•
2000.01.13 03:41
1
COMMENTS
/
0
LIKES
스트링 파싱
여영식
•
2000.01.13 03:52
문제가 약간 모호하군요. 'c:windowssystem가나다.txt' 문자로 파싱을 하게되면 c: windows system ...
표선우
2000.01.13 03:33
0
COMMENTS
/
0
LIKES
TImage에서 그리기 속도 향상하는 법좀...
유도삼
2000/01/13 06:14
Views
828
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> Bmp나 Jpg파일의 사이즈를 A4, B4등의 크기로 지정하여 저장하고자 합니다.
> 그런데 이게 잘 안되는군요.
> 아마도 리소스 문제인듯 한데...
> 암튼 이미지의 사이즈를 크게 해서 저장하고자 할때 좋은 방법이 있는지요?
> 일단 이미지의 사이즈(Width, Height)에 값을 지정(큰 값)하는 순간에
> 에러가 발생합니다.
> 여러 델피언의 조언 부탁합니다.
> 그럼 좋은 나날 되세요.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image_src: TImage;
Image_dst: 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
// 원본 그림
Image_src.Picture.LoadFromFile('cute.bmp');
// 아래는 Image_src.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(Image_src.Picture.Bitmap.Handle, InfoSize, ImageSize);
GetMem(Info, InfoSize);
try
GetMem(Image, ImageSize);
try
GetDIB(Image_src.Picture.Bitmap.Handle, Image_src.Picture.Bitmap.Palette, Info^, Image^);
Image_src.Width := Info^.bmiHeader.biWidth; // 실제 폭
Image_src.Height := Info^.bmiHeader.biHeight; // 실제 높이
finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
// 원본의 2배로 늘려본다
Image_dst.Width := Image_src.Width * 2;
Image_dst.Height := Image_src.Height * 2;
// 크기가 변경된 그림
Image_dst.Canvas.CopyRect(Rect(0,0, Image_dst.Width, Image_dst.Height),
Image_src.Canvas,
Rect(0, 0, Image_src.Width, Image_src.Height));
Image_dst.Picture.SaveToFile('Stretched_cute.bmp');
end;
end.