VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 307|回复: 5

[已解决]代码移植成功后,还是一知半解,求详解。。。。。

[复制链接]
38_avatar_middle
最佳答案
0 
在线会员 发表于 2022-4-14 01:34:17 | 显示全部楼层 |阅读模式
本帖最后由 zmrghy 于 2022-4-14 11:13 编辑

代码移植成功后,还是一知半解,求详解。。。。。

C# winForm原代码

  1.         public byte[] CreateIamge(string str)
  2.         {
  3.             //创建位图(width.height)            
  4.             Bitmap image = new Bitmap((int)Math.Ceiling(str.Length * 64.0), 96);
  5.             Graphics g = Graphics.FromImage(image);
  6.             //画文字
  7.             Font font = new Font("Arial", 64, (FontStyle.Bold | FontStyle.Italic));
  8.             System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
  9.             g.DrawString(str, font, brush, 3, 2);
  10.             //保存图片数据
  11.             MemoryStream stream = new MemoryStream();
  12.             image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
  13.             byte[] buffer = stream.ToArray();
  14.             g.Dispose();
  15.             image.Dispose();
  16.             return buffer;
  17.         }
  18.         private void button1_Click(object sender, EventArgs e)
  19.         {
  20.             MemoryStream stream = new MemoryStream(CreateIamge("4435"));
  21.             Image image = Image.FromStream(stream, true);

  22.             //把图片显示在窗体上
  23.             pictureBox1.Image = image;

  24.             //把图片保存到 D:\\test.jpeg下
  25.             FileStream file = new FileStream("D:\\test.jpeg", FileMode.OpenOrCreate);
  26.             file.Write(CreateIamge("4435"), 0, CreateIamge("4435").Length);
  27.             file.Close();
  28.         }
复制代码


移植到了C++ CLR winForm代码

  1.         public: array<unsigned char>^ CreateIamge(String^ str)
  2.                         {
  3.                                 //创建位图(width.height)
  4.                                 Bitmap^ image = gcnew Bitmap((int)Math::Ceiling(str->Length * 64.0), 96);
  5.                                 Graphics^ g = Graphics::FromImage(image);

  6.                                 //画文字
  7.                                 Drawing::Font^ font = gcnew Drawing::Font("Arial", 64, (FontStyle::Bold | FontStyle::Italic));
  8.                                 Drawing2D::LinearGradientBrush^ brush = gcnew Drawing2D::LinearGradientBrush(Rectangle(0, 0, image->Width,image->Height), Color::Blue, Color::DarkRed, 1.2f, true);
  9.                                 g->DrawString(str, font, brush, 3, 2);

  10.                                 //保存图片数据
  11.                                 MemoryStream^ stream = gcnew MemoryStream();
  12.                                 image->Save(stream, Imaging::ImageFormat::Jpeg);
  13.                                 array<unsigned char>^ buffer = stream->ToArray();
  14.                                 g->~Graphics();//Dispose();
  15.                                 image->~Bitmap();//Dispose();
  16.                                 return buffer;
  17.                         }
  18.         private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
  19.                          {
  20.                                  MemoryStream^ stream = gcnew MemoryStream(CreateIamge("4435"));
  21.                                  Image^ image = Image::FromStream(stream, true);
  22.                                  
  23.                                  //把图片显示在窗体上
  24.                                  pictureBox1->Image = image;
  25.                                  
  26.                                  //把图片保存到 D:\\test.jpeg下
  27.                                  FileStream^ file = gcnew FileStream("D:\\test.jpeg", FileMode::OpenOrCreate);
  28.                                  file->Write(CreateIamge("4435"), 0, (CreateIamge("4435"))->Length);
  29.                                  file->Close();
  30.                          }
复制代码


代码移植成功后,还是一知半解,求详解。。。。。
代码移植成功后,还是一知半解,求详解。。。。。
代码移植成功后,还是一知半解,求详解。。。。。 Form1.rar (1.63 KB, 下载次数: 3)




上一篇:关于多个Png如何制作成bmp格式
下一篇:MFC,有没有办法往网页中的编辑框写入一串字符
96_avatar_middle
最佳答案
2 
在线会员 发表于 2022-4-14 09:06:41 | 显示全部楼层
工程发一下啊
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-4-14 11:17:18 | 显示全部楼层

已经添加了,整个项目压缩包
96_avatar_middle
最佳答案
2 
在线会员 发表于 2022-4-15 11:01:58 | 显示全部楼层    本楼为最佳答案   
bestAnswer
//这段代码在Form1.h里面
//这个模块是点击按钮产生的操作
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
                         {
                         //这里双引号里面是按钮上面显示的内容
                                 MemoryStream^ stream = gcnew MemoryStream(CreateIamge("弹出内容"));
                                 Image^ image = Image::FromStream(stream, true);
                                 
                                 //把图片显示在窗体上
                                 pictureBox1->Image = image;
                                 
                                 //把图片保存到指定目录下
                                  FileStream^ file = gcnew FileStream("D:\\test.jpeg", FileMode::OpenOrCreate);
                         //这里双引号里面是保存的图片上面显示的内容
                                 file->Write(CreateIamge("保存内容"), 0, (CreateIamge("保存内容"))->Length);
                                 file->Close();
                         }
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-4-16 02:30:55 | 显示全部楼层
不说人过 发表于 2022-4-15 11:01
//这段代码在Form1.h里面
//这个模块是点击按钮产生的操作
private: System::Void button1_Click(System: ...

辛苦你了,写这么多注释。
Thank you for writing so many notes.
如果,连这些也看不懂。
If, even these also can't understand.
代码,也不可能移植成功的。
The code, too, will never be ported successfully.

What I need is to be like MSDN.
函数原形,每个参数的类型和作用。
Function primitives, the type and effect of each argument.

MSDN goes into great detail.

Unfortunately, MSDN is in fucking English.


代码移植成功后,还是一知半解,求详解。。。。。
60_avatar_middle
最佳答案
1 
在线会员 发表于 2022-4-16 09:41:51 | 显示全部楼层
本帖最后由 netforfun 于 2022-4-16 09:46 编辑
zmrghy 发表于 2022-4-16 02:30
辛苦你了,写这么多注释。
Thank you for writing so many notes.
如果,连这些也看不懂。


可以看懂的资料还是能找到,而且比较权威可以一试。
You can use this in stead of their fucking english. Enjoy yourself.
援引一下:https://docs.microsoft.com/zh-cn/dotnet/api/?view=netframework-4.8&preserve-view=true
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-11-30 11:58

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表