Diskuze: C# Mazání obrázků
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Používám Image proměnnou, aby se při každém změnění nějaké položky změnil i obrázek. Ale hlavní je asi akce při zmáčknutí buttonu na přidání/editaci obrázku
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG";
if(ofd.ShowDialog() == DialogResult.OK)
{
image = null;
panel2.Invalidate();
if (File.Exists(Vinohrad.ImageDirectory + "\\" + name + ".jpeg"))
File.Delete(Vinohrad.ImageDirectory + "\\" + name + ".jpeg");
Image img = Image.FromFile(ofd.FileName);
img = ScaleImage(img, panel2.Width, panel2.Height);
image = img;
image.Save(Vinohrad.ImageDirectory + "\\" + name + ".jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
panel2.Invalidate();
}
}
Fce ScaleImage
public static Image ScaleImage(Image image, int maxWidth, int maxHeight)
{
var ratioX = (double)maxWidth / image.Width;
var ratioY = (double)maxHeight / image.Height;
var ratio = Math.Min(ratioX, ratioY);
var newWidth = (int)(image.Width * ratio);
var newHeight = (int)(image.Height * ratio);
var newImage = new Bitmap(newWidth, newHeight);
Graphics.FromImage(newImage).DrawImage(image, 0, 0, newWidth, newHeight);
return newImage;
}
Vykreslování
private void panel2_Paint(object sender, PaintEventArgs e)
{
try
{
e.Graphics.Clear(Color.White);
e.Graphics.DrawImage(image, 0, 0);
}
catch
{ }
}
Stačí uvolnit ten img. Všechno co implementuje IDisposable by mělo být v using bloku.
using(Image img = Image.FromFile(ofd.FileName))
{
...
}
Děkuji ti mnohokrát
Zobrazeno 5 zpráv z 5.