ukladanie roznych typov nacitanych suborov ako jpg
This commit is contained in:
@@ -8,6 +8,9 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using Syncfusion.Pdf.Parsing;
|
||||
using System.Drawing.Imaging;
|
||||
|
||||
|
||||
namespace Mip
|
||||
{
|
||||
@@ -53,6 +56,8 @@ namespace Mip
|
||||
pomocnaDT.Columns.Add("Velkost_suboru",typeof (string));
|
||||
pomocnaDT.Columns.Add("Typ_suboru", typeof(string));
|
||||
pomocnaDT.Columns.Add("Cesta",typeof (string));
|
||||
pomocnaDT.Columns.Add("Data", typeof(string));
|
||||
pomocnaDT.Columns.Add("Valid", typeof(int));
|
||||
VypisSpojenyRozmer();
|
||||
classGlobal.FillCB(comboBox2, "tabpomocnychudajov", "Hodnota", "Kategoria", "Pridať iný názov");
|
||||
|
||||
@@ -60,16 +65,13 @@ namespace Mip
|
||||
|
||||
private void btnAddVykres_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
|
||||
openFileDialog1.Multiselect = true;
|
||||
openFileDialog1.DefaultExt = "jpg";
|
||||
openFileDialog1.Filter = "Obrázky (*.BMP;*.JPG;*.JPEG;*.GIF;*.PNG;*.EXIF;*.TIFF)|*.BMP;*.JPG;*.JPEG;*.GIF;*.PNG;*.EXIF;*.TIFF|" +
|
||||
"Pdf súbory (*.pdf)|*.pdf";
|
||||
openFileDialog1.Filter = "Obrázky (*.BMP;*.JPG;*.JPEG;*.GIF;*.PNG;*.EXIF;*.TIFF)|*.BMP;*.JPG;*.JPEG;*.GIF;*.PNG;*.EXIF;*.TIFF|" + "Pdf súbory (*.pdf)|*.pdf";
|
||||
openFileDialog1.FilterIndex = 1;
|
||||
|
||||
openFileDialog1.FileName = "";
|
||||
openFileDialog1.ShowDialog();
|
||||
|
||||
if (openFileDialog1.FileNames != null && openFileDialog1.FileName != "")
|
||||
{
|
||||
foreach (string Cesta in openFileDialog1.FileNames)
|
||||
@@ -84,45 +86,72 @@ namespace Mip
|
||||
{
|
||||
FileStream fileStream;
|
||||
fileStream = new FileStream(Cesta, FileMode.Open, FileAccess.Read);
|
||||
//char[] help = new char[Cesta.Length - Cesta.LastIndexOf("\\") - 1];
|
||||
var fileSize = (int)fileStream.Length;
|
||||
var VykresData = new byte[fileSize];
|
||||
fileStream.Read(VykresData, 0, fileSize);
|
||||
|
||||
|
||||
//Cesta.CopyTo(Cesta.LastIndexOf("\\") + 1, help, 0, (help.Length));
|
||||
//string hlp = new string(help);
|
||||
var FileNameStart = Cesta.LastIndexOf("\\") + 1;
|
||||
var FileName = Cesta.Substring(FileNameStart, Cesta.Length - FileNameStart);
|
||||
var ExtensionStart = Cesta.LastIndexOf(".") + 1;
|
||||
var Extension = Cesta.Substring(ExtensionStart, Cesta.Length - ExtensionStart);
|
||||
|
||||
pomocnaDT.Rows.Add(FileName, Cesta.Length.ToString(), Extension, Cesta);
|
||||
pomocnaDT.Rows.Add(FileName, Cesta.Length.ToString(), Extension, Cesta, VykresData.ToString(), Convert.ToInt32(IsFileValid(VykresData, Extension)));
|
||||
|
||||
dataGridView1.DataSource = pomocnaDT;
|
||||
dataGridView1.AutoResizeColumns();
|
||||
dataGridView1.AutoResizeRows();
|
||||
StyleGridView();
|
||||
dataGridView1.Rows[dataGridView1.Rows.Count - 1].Selected = true;
|
||||
obrazok_Refresh(dataGridView1.Rows.Count - 1);
|
||||
if (dataGridView1.Rows.Count > 4) dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.Count - 4;
|
||||
if (dataGridView1.Rows.Count > 5) dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.Count - 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Súbor: " + Cesta + "\n už v zozname figuruje!", "Upozornenie ...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
//MessageBox.Show(
|
||||
|
||||
}
|
||||
|
||||
|
||||
pictureBox1.Visible = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (textBox6.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && dataGridView1.Rows.Count != 0) button5.Enabled = true;
|
||||
else button5.Enabled = false; //kontrola naplnenia povinných dát
|
||||
}
|
||||
|
||||
private void StyleGridView()
|
||||
{
|
||||
dataGridView1.Columns["Data"].Visible = false;
|
||||
|
||||
dataGridView1.AutoResizeColumns();
|
||||
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
||||
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
||||
dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
||||
dataGridView1.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
dataGridView1.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
||||
dataGridView1.AutoResizeRows();
|
||||
}
|
||||
|
||||
private bool IsFileValid(byte[] vykresData, string extension)
|
||||
{
|
||||
try
|
||||
{
|
||||
switch (extension)
|
||||
{
|
||||
case "pdf":
|
||||
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(vykresData);
|
||||
Bitmap pdfToJpeg = loadedDocument.ExportAsImage(0);
|
||||
loadedDocument.Close(true);
|
||||
return true;
|
||||
default:
|
||||
var memoryStream = new MemoryStream(vykresData);
|
||||
Bitmap image = new Bitmap(memoryStream);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//MessageBox.Show($"Súbor '{Cesta}' nie je obrázok ani pdf");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnVymazVykres_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -181,33 +210,42 @@ namespace Mip
|
||||
dRow = pomocnaDT.Rows[index];
|
||||
|
||||
var isPdf = dRow["Typ_suboru"].ToString() == "pdf";
|
||||
var isValid = dRow["Valid"].ToString() == "1";
|
||||
|
||||
if (isPdf)
|
||||
if(isValid)
|
||||
{
|
||||
FileStream pdfFileStream = new FileStream(dRow["Cesta"].ToString(), FileMode.Open, FileAccess.Read);
|
||||
pictureBox1.Visible = false;
|
||||
pdfDocumentView1.Visible = true;
|
||||
pdfDocumentView1.Load(pdfFileStream);
|
||||
pdfDocumentView1.ZoomMode = Syncfusion.Windows.Forms.PdfViewer.ZoomMode.FitWidth;
|
||||
pdfDocumentView1.Dock = DockStyle.Fill;
|
||||
if (isPdf)
|
||||
{
|
||||
FileStream pdfFileStream = new FileStream(dRow["Cesta"].ToString(), FileMode.Open, FileAccess.Read);
|
||||
pictureBox1.Visible = false;
|
||||
pdfDocumentView1.Visible = true;
|
||||
pdfDocumentView1.Load(pdfFileStream);
|
||||
pdfDocumentView1.ZoomMode = Syncfusion.Windows.Forms.PdfViewer.ZoomMode.FitWidth;
|
||||
pdfDocumentView1.Dock = DockStyle.Fill;
|
||||
}
|
||||
else
|
||||
{
|
||||
fs = new FileStream(dRow["Cesta"].ToString(), FileMode.Open, FileAccess.Read);
|
||||
fileSize = (int)fs.Length;
|
||||
fileData = new byte[fileSize];
|
||||
fs.Read(fileData, 0, fileSize);
|
||||
fs.Close();
|
||||
Bitmap obrazok;
|
||||
//using (MemoryStream stream = new MemoryStream(fileData)) obrazok = new Bitmap(stream);
|
||||
MemoryStream stream = new MemoryStream(fileData);
|
||||
obrazok = new Bitmap(stream);
|
||||
pictureBox1.Visible = true;
|
||||
pictureBox1.Image = obrazok;
|
||||
pictureBox1.Height = obrazok.Height;
|
||||
pictureBox1.Width = obrazok.Width;
|
||||
sizeH = pictureBox1.Image.Size.Height;
|
||||
sizeW = pictureBox1.Image.Size.Width;
|
||||
pdfDocumentView1.Visible = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fs = new FileStream(dRow["Cesta"].ToString(), FileMode.Open, FileAccess.Read);
|
||||
fileSize = (int)fs.Length;
|
||||
fileData = new byte[fileSize];
|
||||
fs.Read(fileData, 0, fileSize);
|
||||
fs.Close();
|
||||
Bitmap obrazok;
|
||||
//using (MemoryStream stream = new MemoryStream(fileData)) obrazok = new Bitmap(stream);
|
||||
MemoryStream stream = new MemoryStream(fileData);
|
||||
obrazok = new Bitmap(stream);
|
||||
pictureBox1.Visible = true;
|
||||
pictureBox1.Image = obrazok;
|
||||
pictureBox1.Height = obrazok.Height;
|
||||
pictureBox1.Width = obrazok.Width;
|
||||
sizeH = pictureBox1.Image.Size.Height;
|
||||
sizeW = pictureBox1.Image.Size.Width;
|
||||
pictureBox1.Visible = false;
|
||||
pdfDocumentView1.Visible = false;
|
||||
}
|
||||
|
||||
@@ -501,13 +539,44 @@ namespace Mip
|
||||
byte[] VykresData;
|
||||
|
||||
dtrw=pomocnaDT.Rows[p1];
|
||||
fs = new FileStream(dtrw["Cesta"].ToString(), FileMode.Open, FileAccess.Read);
|
||||
fileSize = (int)fs.Length;
|
||||
VykresData = new byte[fileSize];
|
||||
fs.Read(VykresData, 0, fileSize);
|
||||
fs.Close();
|
||||
var isValid = dtrw["Valid"].ToString() == "1";
|
||||
|
||||
classSQL.SaveVykresToSQL(IDVyrobok, p1 + 1, VykresData);
|
||||
if(isValid)
|
||||
{
|
||||
fs = new FileStream(dtrw["Cesta"].ToString(), FileMode.Open, FileAccess.Read);
|
||||
fileSize = (int)fs.Length;
|
||||
VykresData = new byte[fileSize];
|
||||
fs.Read(VykresData, 0, fileSize);
|
||||
|
||||
var fileToSave = new byte[fileSize];
|
||||
|
||||
switch (dtrw["Typ_suboru"].ToString())
|
||||
{
|
||||
case "pdf":
|
||||
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(VykresData);
|
||||
Bitmap pdfToJpeg = loadedDocument.ExportAsImage(0);
|
||||
loadedDocument.Close(true);
|
||||
|
||||
fileToSave = SaveAsJpeg(pdfToJpeg);
|
||||
break;
|
||||
|
||||
case "jpg":
|
||||
fileToSave = VykresData;
|
||||
break;
|
||||
|
||||
default:
|
||||
Bitmap imageToJpeg = new Bitmap(fs);
|
||||
fileToSave = SaveAsJpeg(imageToJpeg);
|
||||
break;
|
||||
}
|
||||
|
||||
fs.Close();
|
||||
classSQL.SaveVykresToSQL(IDVyrobok, p1 + 1, fileToSave);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"Výkres '{dtrw["Cesta"]}' nie je validný obrázok alebo pdf! {Environment.NewLine} Preto nebol uložený do databázy.");
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox.Show("Výrobok úspešne pridaný!");
|
||||
@@ -520,6 +589,17 @@ namespace Mip
|
||||
|
||||
}
|
||||
|
||||
private byte[] SaveAsJpeg(Bitmap image)
|
||||
{
|
||||
byte[] returnImageData;
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
returnImageData = stream.ToArray();
|
||||
}
|
||||
|
||||
return returnImageData;
|
||||
}
|
||||
|
||||
private void textBox6_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user