Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как мне быть с EnhancedMetafile / 2 сообщений из 2, страница 1 из 1
07.03.2005, 11:05
    #32949436
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как мне быть с EnhancedMetafile
Хочется из буфера обмена картинку преобразовать в битмап и показать.
Как быть с картинками из ворда или поверпойнта, в формате 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
07.03.2005, 11:55
    #32949475
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как мне быть с EnhancedMetafile
Решение:

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


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