图像不转换为位图

Image does not convert to Bitmap

我目前遇到无法将图像转换为位图的问题。

这是有问题的代码:

private void btnPicture_Click(object sender, EventArgs e)
        {
            OpenFileDialog opFile = new OpenFileDialog();
            opFile.Title = "Choose a picture!";
            opFile.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";

            string appPath = Path.GetDirectoryName(Application.ExecutablePath);
            if (Directory.Exists(appPath) == false)
            {
                Directory.CreateDirectory(appPath);
            }

            if (opFile.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    Character.imageName = opFile.SafeFileName;
                    Stream stream = opFile.OpenFile(); //<------ This is the line in question
                    Bitmap toResize = new Bitmap(stream);

                    Image characterImage = ResizeImage(toResize, 200, 306);

                    imgCharacter.Image = characterImage;
                    characterImage.Save("Images/" + Character.imageName);
                }
                catch (Exception exp)
                {
                    MessageBox.Show("Please select a picture, exception code: " + exp.Message);
                }
            }
            else
            {
                opFile.Dispose();
            }
        }

现在基本上这段代码适用于我尝试过的每一张图片,除了 1。我的朋友试图上传的一张图片会崩溃并出现以下错误:参数无效。

我尝试过的:

Link转为图片:https://cdn.discordapp.com/attachments/413040202307731466/713873776143499294/babar1.jpg

我试图在网上寻求帮助,但找不到任何相关信息,所以我在这里,如果这张图片(或一组图片)有什么特别之处我不知道,请原谅,我是在任何方面、形状或形式上都不是图形设计师。

祝你有愉快的一天。

我在十六进制编辑器中查看了您提供的名为 "barbar1.jpg" 的图像,可以在开头看到 RIFF WEBPVP8 标记。这意味着图像不是 JPG 文件,而是 WEBP 文件。

https://en.wikipedia.org/wiki/WebP

您遇到的错误是在从流中初始化新位图时出现的。位图 class 仅支持 BMP、GIF、EXIF、JPG、PNG 和 TIFF。

Microsoft Paint 支持 WEBP,因此您可以打开并查看它。 Microsoft 和其他图像查看器忽略文件扩展名并根据文件数据本身的格式解析图像。这就是为什么您可以将文件重命名为 PNG、JPG、BMP 等,并且它仍然可以被 Paint 读取。