c# 如果文件格式为.jpg,如何在图片框中显示图像
c# how to show image in picturebox if file format is .jpg
我有问题。我想将图像文件或 rar/zip 加载到我的 WPF。当我单击 WPF 上的按钮打开文件对话框时,出现了一些错误。
这是我打开文件对话框的代码。
private void button1_Click(object sender, EventArgs e)
{
try
{
op.Title = "Select a File";
op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" +
"JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
"Portable Network Graphic (*.png)|*.png"+
"Zip Files|*.zip;*.rar";
if (op.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = System.Drawing.Image.FromFile(op.FileName);
_path = op.FileName;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我的问题是如果文件格式是 .jpg / .png 如何显示图像,如果文件格式是 .rar / .zip 如何在图片框中显示 rar 图标或任何图标。
您似乎正在尝试获取文件图标。为此,请使用 ExtractAssociatedIcon
,如下所示:
var icon = System.Drawing.Icon.ExtractAssociatedIcon(filename);
pictureBox1.Image = icon.ToBitmap();
İ如果我没有理解错,你的问题的解决方案就像下面的代码;
首先,当用户选择zip或rar文件时,您应该选择一张普通图片显示在图片框中。然后将所选图片(例如:rar.jpg)放在应用程序的 **bin\debug** 文件夹下。
然后,使用下面的代码;
try
{
op.Title = "Select a File";
op.Filter = "All Graphics Types|*.bmp;*.jpg;*.jpeg;*.png;*.tif;*.tiff|"
+ "BMP|*.bmp|GIF|*.gif|JPG|*.jpg;*.jpeg|PNG|*.png|TIFF|*.tif;*.tiff|"
+ "Zip Files|*.zip;*.rar";
if (op.ShowDialog() == DialogResult.OK)
{
string x = op.FileName.ToString();
char[] ayrac = { '.' };
string[] kelimeler = x.Split(ayrac);
string y = kelimeler[1].ToString();
if (y != "zip" && y != "rar")
{
pictureBox1.Image = System.Drawing.Image.FromFile(op.FileName);
_path = op.FileName;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
else
{
//How to get picture: The best way is to put the subfolder under the app's bin\debug\,thus you can simply coding:
pictureBox1.Image = Image.FromFile(@"rar.jpg", true);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我希望,代码可以解决您的问题。
也许您想要的只是一个检查文件结尾的简单 if 语句,如下所示:
using System.IO;
if (Path.GetExtension(op.FileName).EndsWith("rar")
|| Path.GetExtension(op.FileName).EndsWith("zip"))
{
// File has rar or zip extension
// Load default image from resources
}
else
{
// Load provided image
}
如果您想使其不区分大小写,您甚至可以将 StringComparison.InvariantCultureIgnoreCase
添加到 EndsWith
调用中。
我有问题。我想将图像文件或 rar/zip 加载到我的 WPF。当我单击 WPF 上的按钮打开文件对话框时,出现了一些错误。
这是我打开文件对话框的代码。
private void button1_Click(object sender, EventArgs e)
{
try
{
op.Title = "Select a File";
op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" +
"JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
"Portable Network Graphic (*.png)|*.png"+
"Zip Files|*.zip;*.rar";
if (op.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = System.Drawing.Image.FromFile(op.FileName);
_path = op.FileName;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我的问题是如果文件格式是 .jpg / .png 如何显示图像,如果文件格式是 .rar / .zip 如何在图片框中显示 rar 图标或任何图标。
您似乎正在尝试获取文件图标。为此,请使用 ExtractAssociatedIcon
,如下所示:
var icon = System.Drawing.Icon.ExtractAssociatedIcon(filename);
pictureBox1.Image = icon.ToBitmap();
İ如果我没有理解错,你的问题的解决方案就像下面的代码;
首先,当用户选择zip或rar文件时,您应该选择一张普通图片显示在图片框中。然后将所选图片(例如:rar.jpg)放在应用程序的 **bin\debug** 文件夹下。
然后,使用下面的代码;
try
{
op.Title = "Select a File";
op.Filter = "All Graphics Types|*.bmp;*.jpg;*.jpeg;*.png;*.tif;*.tiff|"
+ "BMP|*.bmp|GIF|*.gif|JPG|*.jpg;*.jpeg|PNG|*.png|TIFF|*.tif;*.tiff|"
+ "Zip Files|*.zip;*.rar";
if (op.ShowDialog() == DialogResult.OK)
{
string x = op.FileName.ToString();
char[] ayrac = { '.' };
string[] kelimeler = x.Split(ayrac);
string y = kelimeler[1].ToString();
if (y != "zip" && y != "rar")
{
pictureBox1.Image = System.Drawing.Image.FromFile(op.FileName);
_path = op.FileName;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
else
{
//How to get picture: The best way is to put the subfolder under the app's bin\debug\,thus you can simply coding:
pictureBox1.Image = Image.FromFile(@"rar.jpg", true);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我希望,代码可以解决您的问题。
也许您想要的只是一个检查文件结尾的简单 if 语句,如下所示:
using System.IO;
if (Path.GetExtension(op.FileName).EndsWith("rar")
|| Path.GetExtension(op.FileName).EndsWith("zip"))
{
// File has rar or zip extension
// Load default image from resources
}
else
{
// Load provided image
}
如果您想使其不区分大小写,您甚至可以将 StringComparison.InvariantCultureIgnoreCase
添加到 EndsWith
调用中。