이미지 처리에 .net을 사용해 보셨나요? 최근 회사에서 수행한 프로젝트에서 많은 제품 사진이 데이터베이스에 저장되어 있었지만 그 중 저작권 정보가 전혀 없었습니다. 당시 고객은 모든 사진에 회사 이름을 표시하도록 요구했습니다. 이때 어떻게 해야 할까요?
나는 아직 초보자이지만 이 문제에 대한 해결책은 여전히 많이 있으며 다음과 같이 요약할 수 있습니다.
1. Photoshop 등과 같은 그래픽 처리 소프트웨어를 사용하고 일괄 처리 기능을 사용하여 이 기능을 달성하지만 모든 데이터 입력 담당자가 추가하는 시간 사진을 입력하려면 처리해야 하는데 매우 번거롭습니다. 입력 담당자가 대개 나에게 매우 친절하고 매일 미소로 인사하는 것을 볼 수 있습니다. 그녀의? 이 계획은 거부되었습니다.
2. .net의 원활한 이미지 처리를 사용하면 출입 담당자가 사진을 업로드할 때 자동으로 회사 로고가 추가됩니다. 글쎄, 이것은 상위 10,000개의 최고의 솔루션에 포함될 수 있습니다. 2005. , 시키는 대로 하세요.
System.드로잉 사용;
System.IO 사용;
System. Drawing.Imaging 사용;
private void AddTextToImg(string fileName,string text)
{
if(!File.Exists(MapPath(파일 이름)))
{
throw new FileNotFoundException("파일이 존재하지 않습니다!");
}
if(텍스트 == 문자열.비어있음)
{
반품;
}
//또한 파일 형식이 여기서 설명하지 않는 이미지 형식인지 확인해야 합니다.
System.드로잉.Image.FromFile(MapPath(fileName));
비트맵 비트맵 = new Bitmap(image,image.Width,image.Height);
Graphics g = Graphics.FromImage(bitmap);
float 글꼴 크기 = 12.0f;
float textWidth = text.Length*fontSize; //텍스트의 길이
//아래 직사각형 영역을 정의한 후 이 직사각형의 흰색 배경에 검정색 텍스트를 그립니다.
부동 소수점 X = 0;
부동 RECY = 0;
float retWidth = text.Length*(fontSize+8);
float retHeight = 글꼴 크기+8;
//직사각형 도메인 선언
RectangleF textArea = new RectangleF(ectX, retWidth, ectHeight);
Font 글꼴 = new Font("宋体",fontSize);
Brush whiteBrush = new SolidBrush(Color.White); //텍스트를 그리는 데 사용되는 흰색 브러시
g.FillRectangle(blackBrush,retX,ectY,ectWidth,ectHeight);를
사용하여 배경 그리기
g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms = new MemoryStream( );
//Jpg 형식으로 저장
bitmap.Save(ms,ImageFormat.Jpeg);
//처리된 이미지를 출력합니다. 데모의 편의를 위해 페이지에 이미지를 표시합니다.
응답.지우기();
Response.ContentType = "이미지/jpeg";
Response.BinaryWrite( ms.ToArray() )
g.Dispose();
비트맵.Dispose();
image.Dispose();
}
호출은 매우 간단합니다.
AddTextToImg("me.jpg","Xiao Zhi");
저는 .net이 정말 강력하다고 생각합니다. 하지만 Asp에서는 쉽게 수행할 수 있습니다. .Net 환경이 완성되었습니다!