이미지크기를 자동 조정함(640*480)

This commit is contained in:
chikyun.kim
2018-12-10 12:46:28 +09:00
parent 6b374123fd
commit 1c72ca913a
2 changed files with 50 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
181210 chi NR구매등록시 이미지 표시 및 추가 기능
NR구매목록에서 권한 없는 사람이 더블클릭으로 편집할 수 있는 버그 수정
이미지 크기를 640*480 내에서 자동 조정 됨
181207 chi 업체정보화면 에 담당자 목록 추가
업체대표 및 담당자 테이블 데이터 추가
품목에 이미지 확인 사항 추가

View File

@@ -34,6 +34,32 @@ namespace FCOMMON
public static byte[] getImagByteArray(System.Drawing.Image img)
{
if (img == null || img.Width < 1 || img.Height < 1) return null;
//이미지가 640보다 크면 조정한다.
if (img.Width > 640)
{
var newrate = (640.0 / img.Width * 1.0);
var newheight = (int)(img.Height * newrate); //높이값 다시 계산
var newimg = new System.Drawing.Bitmap(640, newheight);
var g = System.Drawing.Graphics.FromImage(newimg);
g.DrawImage(img, new System.Drawing.Rectangle(0, 0, 640, newheight));
g.Dispose();
img = (System.Drawing.Image)(newimg.Clone());
}
else if (img.Height > 480)
{
var newrate = (480.0 / img.Height * 1.0);
var newwidth = (int)(img.Width * newrate); //높이값 다시 계산
var newimg = new System.Drawing.Bitmap(newwidth, 480);
var g = System.Drawing.Graphics.FromImage(newimg);
g.DrawImage(img, new System.Drawing.Rectangle(0, 0, newwidth, 480));
g.Dispose();
img = (System.Drawing.Image)(newimg.Clone());
}
System.IO.MemoryStream sm = new System.IO.MemoryStream();
img.Save(sm, System.Drawing.Imaging.ImageFormat.Jpeg);
var buffer = sm.GetBuffer();
@@ -44,6 +70,29 @@ namespace FCOMMON
public static Boolean setImageData(System.Drawing.Image img, string table, string field, int idx)
{
if (img == null || img.Width < 1||img.Height < 1) return false;
//이미지가 640보다 크면 조정한다.
if(img.Width > 640)
{
var newrate = (640.0 / img.Width * 1.0);
var newheight = (int)(img.Height * newrate); //높이값 다시 계산
var newimg = new System.Drawing.Bitmap(640, newheight);
var g = System.Drawing.Graphics.FromImage(newimg);
g.DrawImage(img, new System.Drawing.Rectangle(0, 0, 640, newheight));
g.Dispose();
img = (System.Drawing.Image)(newimg.Clone());
} else if(img.Height > 480)
{
var newrate = (480.0 / img.Height * 1.0);
var newwidth = (int)(img.Width * newrate); //높이값 다시 계산
var newimg = new System.Drawing.Bitmap(newwidth, 480);
var g = System.Drawing.Graphics.FromImage(newimg);
g.DrawImage(img, new System.Drawing.Rectangle(0, 0, newwidth,480));
g.Dispose();
img = (System.Drawing.Image)(newimg.Clone());
}
var cn = getCn();
cn.Open();