Изображение загружено и изменено в размере не открывается в инструментах редактора изображений, если изображение загружено - PullRequest
0 голосов
/ 09 февраля 2012

Я использую следующий код для изменения размера изображения после загрузки.Функция изменяет размеры изображений и сохраняет их с новым именем без изменения расширения файла, и изображение отлично отображается во всех основных браузерах.

Проблема заключается только в том, что кто-то загружает изображение и пытается открыть его в любом редакторе изображений.как Fireworks или Photoshop, он выдаст следующую ошибку

ОШИБКА: * Не удалось открыть файл.Неизвестный тип файла. *

Я не уверен, почему он выдает такую ​​ошибку.

Функция для изменения размера изображения.

    public static void ResizeImageInput(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
    {
        System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(OriginalFile);
        // Prevent using images internal thumbnail
        FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
        FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
        if (OnlyResizeIfWider)
        {
            if (FullsizeImage.Width <= NewWidth)
            {
                NewWidth = FullsizeImage.Width;
            }
        }
        System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(NewWidth, MaxHeight, null, IntPtr.Zero);
        // Clear handle to original file so that we can overwrite it if necessary
        FullsizeImage.Dispose();
        // Save resized picture
        NewImage.Save(NewFile);
    }

Функция для загрузки изображения

protected void btnArticlePageImage_Click(object sender, EventArgs e)
{

    try
    {
        String filePath = string.Empty;
        String CurrentGUID = Guid.NewGuid().ToString();

        if (FileUpload2.HasFile)
        {
            string filename = System.IO.Path.GetFileName(FileUpload2.FileName);
            System.IO.FileInfo f = new System.IO.FileInfo(FileUpload2.PostedFile.FileName);
            double fileSize = (double)FileUpload2.FileBytes.Length;
            if (fileSize < 1024000) // 1 MB current size size in bytes 102400=100kb  512000 = 500kb
            {
                if ((f.Extension.ToLower() == ".jpg") || (f.Extension.ToLower() == ".png") || (f.Extension.ToLower() == ".gif") || (f.Extension.ToLower() == ".jpeg"))
                {
                    filename = CurrentGUID + f.Extension;
                    //string productGUID 
                    filePath = Server.MapPath("../ImagesArticles/") + filename;
                    if (System.IO.File.Exists(filePath))
                    {
                        return;
                    }
                    else
                    {
                        //Upload files
                        FileUpload2.PostedFile.SaveAs(Server.MapPath("../ImagesArticles/") + filename);
                        //objPages.PageBannerImageEn = filename;
                        Session["ArticleLargeImage"] = filename.ToString();
                        string errMsg = "File Uploaded Successfully";
                        lblImageUploadMessage1.Text = errMsg;
                        // ResizeImage(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
                        Helper.ResizeImage(filePath, filePath, 150, 80, true);
                    }
                    return;
                }
                else
                {
                    string errMsg = "File must be an Image type of .jpg, .png, .gif, .jpeg";
                    //client-side error
                    lblImageUploadMessage1.Text = errMsg;
                    return;
                }
            }
            else
            {
                string errMsg = "File size is greater the 1MB";
                //client-side error
                lblImageUploadMessage1.Text = errMsg;
                return;
            }
        }
        else
        {
            //lblMesg.Text = "Only type .jpg, .png, .gif are allow";
            string errMsg = "Cant Upload File due to some error";
            //client-side error
            lblImageUploadMessage1.Text = errMsg;
            return;
        }
    }
    catch (Exception ex)
    {
        Response.Write("ERROR MESSAGE : " + ex.Message.ToString());
    }

}

Последовательность: пользователь может загрузитьтип изображения JPG, GIF, PNG и т. д. Я переименовываю изображение только с GUID, сохраняю расширение изображения и сохраняю его на веб-сервере.После этого я изменяю размер изображения для последующего использования.

Эти изображения с измененным размером работают нормально во всех браузерах, но проблема заключается только в том, если кто-то загружает эти изображения для редактирования, они не открываются в любых инструментах графического редактора.1026 * Это дает общее сообщение об ошибке, как упомянуто в первой части вопроса.

1 Ответ

0 голосов
/ 09 февраля 2012

Попробуйте добавить формат изображения для сохранения, это для изображения GIF

NewImage.Save(NewFile, System.Drawing.Imaging.ImageFormat.Gif);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...