powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как мне быть с EnhancedMetafile
2 сообщений из 2, страница 1 из 1
Как мне быть с EnhancedMetafile
    #32949436
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется из буфера обмена картинку преобразовать в битмап и показать.
Как быть с картинками из ворда или поверпойнта, в формате EnhancedMetafile ?
Нужна помощь.



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace CopyPasteBmp
{
	public class Form1 : System.Windows.Forms.Form
	{
		private System.Windows.Forms.PictureBox pictureBox1;
		private System.Windows.Forms.Button button1;
		private System.ComponentModel.Container components = null;

		public Form1()
		{
			InitializeComponent();
		}

		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		
		private void InitializeComponent()
		{
			this.pictureBox1 = new System.Windows.Forms.PictureBox();
			this.button1 = new System.Windows.Forms.Button();
			this.SuspendLayout();
			// 
			// pictureBox1
			// 
			this.pictureBox1.BackColor = System.Drawing.SystemColors.Info;
			this.pictureBox1.Location = new System.Drawing.Point(368, 32);
			this.pictureBox1.Name = "pictureBox1";
			this.pictureBox1.Size = new System.Drawing.Size(320, 280);
			this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
			this.pictureBox1.TabIndex = 0;
			this.pictureBox1.TabStop = false;
			// 
			// button1
			// 
			this.button1.Location = new System.Drawing.Point(144, 144);
			this.button1.Name = "button1";
			this.button1.TabIndex = 1;
			this.button1.Text = "button1";
			this.button1.Click += new System.EventHandler(this.button1_Click);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(712, 486);
			this.Controls.Add(this.button1);
			this.Controls.Add(this.pictureBox1);
			this.Name = "Form1";
			this.Text = "Form1";
			this.ResumeLayout(false);

		}
		

		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		private void button1_Click(object sender, System.EventArgs e)
		{
			IDataObject dt=Clipboard.GetDataObject();

			if(dt.GetDataPresent(typeof(Bitmap)))			
			{
				
                                        // Если в Clipboard находится битмап, всё работает ОК.
					Bitmap cpbmp = (Bitmap)dt.GetData(DataFormats.Bitmap);
					this.pictureBox1.Image = cpbmp;
				
			}
			else
			{
				
				if(dt.GetDataPresent(DataFormats.EnhancedMetafile))			
				{
					MessageBox.Show("Metafile");
                                       // Если Метафайл, например копирую картинку из Ворда или Повепойнта - то не работает.
						Metafile cpbmp =  (Metafile)(dt.GetData(DataFormats.EnhancedMetafile));
						this.pictureBox1.Image = cpbmp;
				}
				else
				{
					MessageBox.Show("NO Image !");
				}
					
					
			}
					
		}
	}

}
...
Рейтинг: 0 / 0
Как мне быть с EnhancedMetafile
    #32949475
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение:

Код: plaintext
1.
2.
3.
4.
5.
if (dt.GetDataPresent("PNG"))
{
	MemoryStream ms = (MemoryStream) dt.GetData("PNG");
	Bitmap bm = new Bitmap(Image.FromStream(ms));
}

-------------------------------------------------------------------------
Нет худа без добра, да и добро без худа - чудо.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как мне быть с EnhancedMetafile
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]