|
本帖最后由 zmrghy 于 2022-4-14 11:13 编辑
代码移植成功后,还是一知半解,求详解。。。。。
C# winForm原代码
- public byte[] CreateIamge(string str)
- {
- //创建位图(width.height)
- Bitmap image = new Bitmap((int)Math.Ceiling(str.Length * 64.0), 96);
- Graphics g = Graphics.FromImage(image);
- //画文字
- Font font = new Font("Arial", 64, (FontStyle.Bold | FontStyle.Italic));
- 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);
- g.DrawString(str, font, brush, 3, 2);
- //保存图片数据
- MemoryStream stream = new MemoryStream();
- image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
- byte[] buffer = stream.ToArray();
- g.Dispose();
- image.Dispose();
- return buffer;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- MemoryStream stream = new MemoryStream(CreateIamge("4435"));
- Image image = Image.FromStream(stream, true);
- //把图片显示在窗体上
- pictureBox1.Image = image;
- //把图片保存到 D:\\test.jpeg下
- FileStream file = new FileStream("D:\\test.jpeg", FileMode.OpenOrCreate);
- file.Write(CreateIamge("4435"), 0, CreateIamge("4435").Length);
- file.Close();
- }
复制代码
移植到了C++ CLR winForm代码
- public: array<unsigned char>^ CreateIamge(String^ str)
- {
- //创建位图(width.height)
- Bitmap^ image = gcnew Bitmap((int)Math::Ceiling(str->Length * 64.0), 96);
- Graphics^ g = Graphics::FromImage(image);
- //画文字
- Drawing::Font^ font = gcnew Drawing::Font("Arial", 64, (FontStyle::Bold | FontStyle::Italic));
- Drawing2D::LinearGradientBrush^ brush = gcnew Drawing2D::LinearGradientBrush(Rectangle(0, 0, image->Width,image->Height), Color::Blue, Color::DarkRed, 1.2f, true);
- g->DrawString(str, font, brush, 3, 2);
- //保存图片数据
- MemoryStream^ stream = gcnew MemoryStream();
- image->Save(stream, Imaging::ImageFormat::Jpeg);
- array<unsigned char>^ buffer = stream->ToArray();
- g->~Graphics();//Dispose();
- image->~Bitmap();//Dispose();
- return buffer;
- }
- private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
- {
- MemoryStream^ stream = gcnew MemoryStream(CreateIamge("4435"));
- Image^ image = Image::FromStream(stream, true);
-
- //把图片显示在窗体上
- pictureBox1->Image = image;
-
- //把图片保存到 D:\\test.jpeg下
- FileStream^ file = gcnew FileStream("D:\\test.jpeg", FileMode::OpenOrCreate);
- file->Write(CreateIamge("4435"), 0, (CreateIamge("4435"))->Length);
- file->Close();
- }
复制代码
Form1.rar
(1.63 KB, 下载次数: 3)
|
上一篇: 关于多个Png如何制作成bmp格式下一篇: MFC,有没有办法往网页中的编辑框写入一串字符
|