你试过来进行图像处理吗?公司最近进行的一个项目数据库中存入了很多的产品图片可是都没有版权信息当时客户要求将所有的图片打上公司名称?这时候你该怎么办?
虽说我还是江湖嫩手可是对这一问题的解决方案还是很多归结如下
使用图形处理软件如Photoshop等利用其批处理功能可以实现这个功能可是每次数据录入员加进图片的话还得加工一下图片很麻烦的看录入员大姐平常对我很不错每日笑脸相迎能忍心折磨她么?这个方案否决了
使行云流水般的图像处理当录入员大姐上传图片的时候就自动加上公司标记这样岂不更好嗯这想法不错可以进入最佳解决方案第万强了好说干就干
using SystemDrawing;
using SystemIO;
using SystemDrawingImaging;
private void AddTextToImg(string fileNamestring text)
{
if(!FileExists(MapPath(fileName)))
{
throw new FileNotFoundException(The file dont exist!);
}
if( text == stringEmpty )
{
return;
}
//还需要判断文件类型是否为图像类型这里就不赘述了
SystemDrawingImage image = SystemDrawingImageFromFile(MapPath(fileName));
Bitmap bitmap = new Bitmap(imageimageWidthimageHeight);
Graphics g = GraphicsFromImage(bitmap);
float fontSize = f; //字体大小
float textWidth = textLength*fontSize; //文本的长度
//下面定义一个矩形区域以后在这个矩形里画上白底黑字
float rectX = ;
float rectY = ;
float rectWidth = textLength*(fontSize+);
float rectHeight = fontSize+;
//声明矩形域
RectangleF textArea = new RectangleF(rectXrectYrectWidthrectHeight);
Font font = new Font(宋体fontSize); //定义字体
Brush whiteBrush = new SolidBrush(ColorWhite); //白笔刷画文字用
Brush blackBrush = new SolidBrush(ColorBlack); //黑笔刷画背景用
gFillRectangle(blackBrushrectXrectYrectWidthrectHeight);
gDrawString(textfontwhiteBrushtextArea);
MemoryStream ms = new MemoryStream( );
//保存为Jpg类型
bitmapSave(msImageFormatJpeg);
//输出处理后的图像这里为了演示方便我将图片显示在页面中了
ResponseClear();
ResponseContentType = image/jpeg;
ResponseBinaryWrite( msToArray() );
gDispose();
bitmapDispose();
imageDispose();
}
调用时很简单
AddTextToImg(mejpgFamilyMan);
这些功能在Asp中可是奢侈品了而在Net环境中却能轻而易举的完成!