Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Graphics save image format


Автор: Nestap 20.2.2009, 10:37
привет,
рибята бот такая проблема:

создаю график но как сохранить его?

  
Код

Graphics gr=this.pictureBox1.CreateGraphics();
   gr.DrawLine(marg, 640 / 3, 0, 640 / 3, 480);//марг пен(колор)


как сохранять все ето? в формате бмп,жпг...


Автор: amarenkov 20.2.2009, 12:05
Используй this.pictureBox1.Image.Save.

Автор: diadiavova 20.2.2009, 14:50
Если выполнять прорисовку в самом пикчербоксе, то сохранение изображения ничего не даст(его вообще там может и не быть).
Сначала надо для бокса создать изображение.
Код

Bitmap bm = new Bitmap(picturebox1.Width, picturebox1.Height);
picturebox1.Image = bm;


Объект Graphics создать для изображения(а не бокса)
Код

Graphics g = Graphics.FromImage(picturebox1.Image);
//здесь код прорисовки


А после этого уже можно делать, как написал amarenkov. 

Автор: Nestap 20.2.2009, 16:36
diadiavova, 

зделал как  вот так:

      
Код

      Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            pictureBox1.Image = bmp;
            Graphics gr = Graphics.FromImage(pictureBox1.Image);
            gr.DrawRectangle(marg, 0, 0, 640, 480);

           SaveFileDialog dialog = new SaveFileDialog();
            dialog.Filter= ".jpg | *.jpg"; 
           
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image.Save(dialog.FileName, ImageFormat.Jpeg);
            }
        


всео идёт но опен филе .жпг там вапше другие цвета: background=black, a pen ramke blue koda ia postavil (belii fon i krasnii tvet ramki);

??:(

Автор: diadiavova 20.2.2009, 17:02
Фон  надо залить сначала(по-моему у грэфикс это делается при помощи метода Clear), что до цвета рамки, то я тут не увидел где ты цвет задаёшь, так что ничего не могу сказать.

ЗЫ
На каком языке ты написал конец сообщения? smile 

Автор: Nestap 20.2.2009, 17:38
diadiavova, 

спосибо,

проблема било в том што я поставил обиект графикс и бмп глобал,
а типери кажетса фсео нормалино, поставил в функти. 

Автор: Nestap 20.2.2009, 18:31
diadiavova, 

опять штота не то!

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Graphics
{
    public partial class frmLab1 : Form
    {
           
        public frmLab1()
        {
            InitializeComponent();
          
        }

        private void frmLab1_Load(object sender, EventArgs e)
        {

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {       
           Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            pictureBox1.Image = bmp;
             System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(pictureBox1.Image);//colori pen si brush 
            Pen chenar = new Pen(Color.Black, 3);
            Pen contur = new Pen(Color.Red, 2);
            SolidBrush fon_ob = new SolidBrush(Color.LightBlue);
            Pen contur2 = new Pen(Color.SkyBlue, 2);
           // end
            //start chenar
            gr.DrawRectangle(chenar, 0, 1, 640, 480);
            gr.DrawLine(chenar, 640 / 3, 0, 640 / 3, 480);
            gr.DrawLine(chenar, 640 / 3 * 2, 0, 640 / 3 * 2, 480);
            gr.DrawLine(chenar, 0, 480 / 3 * 2, 640, 480 / 3 * 2);
            gr.DrawLine(chenar, 0, 480 / 3, 640, 480 / 3);
            //end chenar start graphics object
            //1
            Draw3D_nestap dd = new Draw3D_nestap(gr);
            dd.Draw3D_paralelipiped_dreapta(fon_ob,contur2, 35 , 50,100,75);
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            SaveFileDialog sv = new SaveFileDialog();
            sv.FileName = "Graphics lab_1";
            sv.Filter = "JPG files (*.jpg)|*.jpg|All files (*.*)|*.*";
            if (sv.ShowDialog() == DialogResult.OK)
                pictureBox1.Image.Save(sv.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);

        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            op.Filter = "JPG files (*.jpg)|*.jpg|All files (*.*)|*.*";
            if (op.ShowDialog() == DialogResult.OK)
                pictureBox1.Load(op.FileName);
        }
    }
}



вот што на саве()...

http://pic.ipicture.ru/uploads/090220/WWfg1vx3SD.jpg

а должен :

http://pic.ipicture.ru/uploads/090220/22ZsFAB1kh.jpg

Автор: diadiavova 20.2.2009, 19:13
Код

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            pictureBox1.Image = bmp;
            System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(pictureBox1.Image);//colori pen si brush 
            Pen chenar = new Pen(Color.Black, 3);
            Pen contur = new Pen(Color.Red, 2);
            SolidBrush fon_ob = new SolidBrush(Color.LightBlue);
            Pen contur2 = new Pen(Color.SkyBlue, 2);
            // end
            //start chenar
            gr.Clear(Color.White);
            gr.DrawRectangle(chenar, 0, 1, 640, 480);
            gr.DrawLine(chenar, 640 / 3, 0, 640 / 3, 480);
            gr.DrawLine(chenar, 640 / 3 * 2, 0, 640 / 3 * 2, 480);
            gr.DrawLine(chenar, 0, 480 / 3 * 2, 640, 480 / 3 * 2);
            gr.DrawLine(chenar, 0, 480 / 3, 640, 480 / 3);
            //end chenar start graphics object
            //1
            Draw3D_nestap dd = new Draw3D_nestap(gr);
            dd.Draw3D_paralelipiped_dreapta(fon_ob, contur2, 35, 50, 100, 75);
        }



Добавлено через 14 минут и 44 секунды
Обрати внимание на 12 строку

Автор: Nestap 22.2.2009, 11:59
болишое спосибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)