none
Write some words in picture(win8 metro) RRS feed

  • 问题

  • I wanna know if there are some win8 metro apis that we can write words in the picture

    • 已编辑 Leo06053308 2012年3月15日 1:50
    • 已移动 Lie You 2012年3月19日 5:17 (发件人:.NET Framework 一般性问题讨论区)
    2012年3月14日 1:59

全部回复

  • Hi:)

    no need to use API but just Graphics+Image can solve your problem!Have a try like this!

    namespace MyTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                Image img = Image.FromFile("d:\\Penguins.jpg");
                Graphics g = Graphics.FromImage(img);
                g.DrawString("企 鹅", new Font("黑体", 40.5f), Brushes.YellowGreen, new PointF(img.Width / 2, img.Height / 2));
                g.Save();
                img.Save("C:\\企鹅.jpg", ImageFormat.Jpeg);
                Console.WriteLine("OK");
            }
        }
    }


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年3月14日 6:43
  • Hi Leo06053308,

      如果你的图片来源于剪切板,那么下面这段代码或许适合你的场景:

     
     try
                {
                    Image bmap;
                    IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
                    bmap = (Image)(data.GetData(typeof(System.Drawing.Bitmap)));
                    Graphics g = Graphics.FromImage(bmap);
    
                    SolidBrush drawBrush = new SolidBrush(Color.Red);
                    Font drawFont = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Millimeter);
                    int xPos = bmap.Height - (bmap.Height - 25);
                    int yPos = 3;
    
                    g.DrawString("test", drawFont, drawBrush, xPos, yPos);
    
                    string sPicPath = "d:\\filename.jpg";
                    string sPreFix = "d:\\xxx";
    
                    Image smBmap;
    
                    smBmap = bmap.GetThumbnailImage(bmap.Width, bmap.Height, null, System.IntPtr.Zero);
    
                    smBmap.Save(sPicPath, System.Drawing.Imaging.ImageFormat.Jpeg);
    
                    bmap.Save(sPreFix + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                    bmap = null;
                    smBmap = null;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }

      如果要在win7下实现保存jpg的话,要右击鼠标开发环境选择Run as administrator。。。去实现权限提升之后就有对d盘的写权限。


    orichisonic http://blog.csdn.net/orichisonic If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".


    2012年3月14日 7:18
  • 不好意思啊,我没说明白,是在win8 metro下,现在我找到的资料是metro不支持GDI,我想知道是不是有其他的方式可以实现这种功能(除了使用D2D方式外)
    2012年3月15日 1:53
  • 不好意思啊,我没说明白,是在win8 metro下,现在我找到的资料是metro不支持GDI,我想知道是不是有其他的方式可以实现这种功能(除了使用D2D方式外)
    2012年3月15日 1:53
  • 不,是我们没有看清楚,Sorry。

    目前想不出别的办法,不过你先可以试试我们的方法,然后设法把图片附加到Metro界面上去。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年3月15日 1:56
  • 建议您在中文论坛上用中文发表问题,这样会有更多的人回复,也会帮住更多遇到类似问题的人。

    以上我贴的是英文的论坛,下面的是中文相关的论坛,希望能帮得到您。

    http://social.technet.microsoft.com/Forums/zh-cn/w8itprozhcn/threads

    http://answers.microsoft.com/zh-hans/windows/forum/windows_8?tab=all

    另外好像现在还没有公布一些API做类似的事。


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us

    2012年3月15日 6:28