C#在图片上添加文字后,用CorelDraw打开并能编辑

时间:2022-10-24 07:31:17
今天和个客户谈了单项目,其中有个需求是“在图片上添加文字后,立即用CorelDraw打开并能编辑”。
对图片处理还是第一次碰到啊,各位大哥大姐帮帮忙、、、、谢谢了!

具体思路:比如一张上商品的图片,商品Id:96955565(随便写的),然后可以从数据库里面读出商品的名称、单价等信息。

把这些信息的文字添加到对应的商品图片上去,然后用CorelDraw打开并能编辑。

15 个解决方案

#1


该回复于2011-02-28 20:00:44被版主删除

#2


这种方法很麻烦,你要知道CD文件的详细格式,我想 Corel公司因该不会给你。你可以换种思考方式:作键盘和鼠标钩子来完成你要的操作。

#3


所以为什么不用“用CorelDraw打开图片后自动添加文字呢”?

#4


引用 3 楼 qsq3 的回复:
所以为什么不用“用CorelDraw打开图片后自动添加文字呢”?


求详解、、、、

#5



/// <summary>
       /// 重绘图片
       /// </summary>
       /// <param name="image">原始图片</param>
       /// <param name="text">文本值</param>
       /// <param name="size">字体大小</param>
       /// <param name="color">字体颜色</param>
       /// <returns></returns>
       public static Image PlotImage(Image image, string text,int size,Color color)
       {
           Bitmap bmp = new Bitmap(image.Width + 70, image.Height);//设置新图片的大小
           Graphics gh = Graphics.FromImage(bmp);//载入图片重绘
           gh.DrawImage(image, new Point(10,0));//设置初始坐标
           //在图片后面绘制字体
           gh.DrawString(text, new Font("宋体", size), new SolidBrush(color), new PointF(image.Width + 15, image.Height / 2 - 5));
           gh.Dispose();
           return bmp;

       }

#6


我知道ps是有sdk库的,CD不清楚。如果你找不到,你还能用C#模拟键盘和鼠标来操作CD来完成你客户的要求。至于怎么模拟,网上有太多这样的资料了。

#7


根据商品ID提出商品对应图片的路径简单,这个你应该会,

但是你需要知道CorelDraw是否支持参数
比如:CorelDraw -p 图像路径
-p参数是我瞎写的,表示path,如果支持参数就好办了

#8


如果图片的源文件是JPG那是可以加文字的,但用CorelDraw打开后就没办法编辑文字了。

#9


C#给图片添加文字水印:


Bitmap bmp = new Bitmap(filename);    //你从数据库根据ID提取的图片路径
Graphics g = Graphics.FromImage(bmp);
String str = "hello, string";         //要叠加的水印文字
Font font = new Font("宋体", 8);
SolidBrush sbrush = new SolidBrush(Color.Black);
g.DrawString(str, font, sbrush, new PointF(10, 10));
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);



但是你的按钮要直接打开口罩进行编辑,用C#运行口罩容易,但是口罩的参数怎么写我不知道:就是如何加参数使口罩直接打开你指定的图片。

有了口罩参数一切搞定~~~~~~~~~~

#10


To:qsq3
是的啊,根据图片ID 获取数据库对应商品的明细信息,然后添加到商品图片上面。这部分我都会了。

但是用CD打开后,文字是不能编辑的。

继续等待高人、、、、

#11


引用 10 楼 jekyshi 的回复:
To:qsq3
是的啊,根据图片ID 获取数据库对应商品的明细信息,然后添加到商品图片上面。这部分我都会了。

但是用CD打开后,文字是不能编辑的。

继续等待高人、、、、


啊那肯定是不能编辑的,要将图片保存为分层文件才行啊!


http://blog.csdn.net/zgke/archive/2009/05/25/4213443.aspx


一个操作PSD文件的例子下载:
http://www.pudn.com/downloads245/sourcecode/graph/detail1140296.html



没测试,自己测试一下吧。

#12


引用 10 楼 jekyshi 的回复:
To:qsq3
是的啊,根据图片ID 获取数据库对应商品的明细信息,然后添加到商品图片上面。这部分我都会了。

但是用CD打开后,文字是不能编辑的。

继续等待高人、、、、
 

我能想到的有二种办法解决:
1、理解CDR格式文件或者CD支持的有图层功能的文件,比如TIF,PSD等,直接增加文字至文件再用CD打开。
2、用C#打开CD,再用C#模拟键盘和鼠标自动打开JPG文件,打出文字来。

#13


第二种方法很成熟了,可能也是你唯一可以用的方法了。呵

#14


#15


该回复于2011-03-24 13:25:53被版主删除

#1


该回复于2011-02-28 20:00:44被版主删除

#2


这种方法很麻烦,你要知道CD文件的详细格式,我想 Corel公司因该不会给你。你可以换种思考方式:作键盘和鼠标钩子来完成你要的操作。

#3


所以为什么不用“用CorelDraw打开图片后自动添加文字呢”?

#4


引用 3 楼 qsq3 的回复:
所以为什么不用“用CorelDraw打开图片后自动添加文字呢”?


求详解、、、、

#5



/// <summary>
       /// 重绘图片
       /// </summary>
       /// <param name="image">原始图片</param>
       /// <param name="text">文本值</param>
       /// <param name="size">字体大小</param>
       /// <param name="color">字体颜色</param>
       /// <returns></returns>
       public static Image PlotImage(Image image, string text,int size,Color color)
       {
           Bitmap bmp = new Bitmap(image.Width + 70, image.Height);//设置新图片的大小
           Graphics gh = Graphics.FromImage(bmp);//载入图片重绘
           gh.DrawImage(image, new Point(10,0));//设置初始坐标
           //在图片后面绘制字体
           gh.DrawString(text, new Font("宋体", size), new SolidBrush(color), new PointF(image.Width + 15, image.Height / 2 - 5));
           gh.Dispose();
           return bmp;

       }

#6


我知道ps是有sdk库的,CD不清楚。如果你找不到,你还能用C#模拟键盘和鼠标来操作CD来完成你客户的要求。至于怎么模拟,网上有太多这样的资料了。

#7


根据商品ID提出商品对应图片的路径简单,这个你应该会,

但是你需要知道CorelDraw是否支持参数
比如:CorelDraw -p 图像路径
-p参数是我瞎写的,表示path,如果支持参数就好办了

#8


如果图片的源文件是JPG那是可以加文字的,但用CorelDraw打开后就没办法编辑文字了。

#9


C#给图片添加文字水印:


Bitmap bmp = new Bitmap(filename);    //你从数据库根据ID提取的图片路径
Graphics g = Graphics.FromImage(bmp);
String str = "hello, string";         //要叠加的水印文字
Font font = new Font("宋体", 8);
SolidBrush sbrush = new SolidBrush(Color.Black);
g.DrawString(str, font, sbrush, new PointF(10, 10));
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);



但是你的按钮要直接打开口罩进行编辑,用C#运行口罩容易,但是口罩的参数怎么写我不知道:就是如何加参数使口罩直接打开你指定的图片。

有了口罩参数一切搞定~~~~~~~~~~

#10


To:qsq3
是的啊,根据图片ID 获取数据库对应商品的明细信息,然后添加到商品图片上面。这部分我都会了。

但是用CD打开后,文字是不能编辑的。

继续等待高人、、、、

#11


引用 10 楼 jekyshi 的回复:
To:qsq3
是的啊,根据图片ID 获取数据库对应商品的明细信息,然后添加到商品图片上面。这部分我都会了。

但是用CD打开后,文字是不能编辑的。

继续等待高人、、、、


啊那肯定是不能编辑的,要将图片保存为分层文件才行啊!


http://blog.csdn.net/zgke/archive/2009/05/25/4213443.aspx


一个操作PSD文件的例子下载:
http://www.pudn.com/downloads245/sourcecode/graph/detail1140296.html



没测试,自己测试一下吧。

#12


引用 10 楼 jekyshi 的回复:
To:qsq3
是的啊,根据图片ID 获取数据库对应商品的明细信息,然后添加到商品图片上面。这部分我都会了。

但是用CD打开后,文字是不能编辑的。

继续等待高人、、、、
 

我能想到的有二种办法解决:
1、理解CDR格式文件或者CD支持的有图层功能的文件,比如TIF,PSD等,直接增加文字至文件再用CD打开。
2、用C#打开CD,再用C#模拟键盘和鼠标自动打开JPG文件,打出文字来。

#13


第二种方法很成熟了,可能也是你唯一可以用的方法了。呵

#14


#15


该回复于2011-03-24 13:25:53被版主删除