1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 24
1

Загрузка изображения на сайт

26.07.2011, 03:29. Показов 8490. Ответов 13
Метки нет (Все метки)

Доброго времени соток добрые люди !
настали тяжелые времена и мне понадобилась ваша помощь !
Суть проблемы в том что мне надо создать загрузку изображения на сайт и с выводом его на этой же странице. И выполнить надо на asp.net и на языке C# (под WEB).
я уже и по гугглил и тут поиск по мучал вот решил за помощью за реальным советом обратиться !
Прошу люди добрые дайте пример кода или ссылку где почитать а если есть то готовый проект !
Очень буду благодарен добрым людям !
Спасибо !
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2011, 03:29
Ответы с готовыми решениями:

Загрузка изображения на сайт
Пишу программу по автоматическому заполнению формы сайта. Столкнулся с проблемой загрузкой...

Загрузка изображения на сайт (можно через Webbrowser)
Всем привет, делаю автоматический постинг на сайте сделал авторизацию, сам постинг , потом меня...

Загрузка картинок с сжатием и конвертированием изображения + массовая загрузка
Приветствую форумчане Я можно сказать что новичок в PHP но сайты пишу уже давно, и столкнулся с...

Загрузка изображения в Image с сохранении соотношения сторон изображения
загрузка изображения в Image(с фиксированным размером) при этом изображение должно сохранить...

13
3 / 3 / 2
Регистрация: 21.06.2011
Сообщений: 50
26.07.2011, 10:48 2
Вот. Тут сразу с проектом.
Подредактируешь под себя: можешь добавить чтобы посли показа изображение удалялось и т.д.
Архив:
2
Вложения
Тип файла: rar Помощь.rar (1.3 Кб, 409 просмотров)
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 24
26.07.2011, 13:52  [ТС] 3
Цитата Сообщение от pilot747 Посмотреть сообщение
Вот. Тут сразу с проектом.
Подредактируешь под себя: можешь добавить чтобы посли показа изображение удалялось и т.д.
Архив:
вот запустил ваш пример запустился он нормально но когда выбрал картинку и нажал отправить то он мне вот такую ошибку написал !

The SaveAs method is configured to require a rooted path, and the path 'ПОЛНЫЙ адрес папки с сайтом (C:\Users\и т.д.)220767287.jpg' is not rooted.

или как я понимаю мне надо там самому вписать место для сохранения ?

Добавлено через 2 часа 0 минут
так то всё сделал ! работает!
Спасибо pilot747 !

Но есть ещё один вопрос как сделать что бы если размеры изображения больше чем 800х600, то пропорционально уменьшить его до этих размеров.
0
CEO
Эксперт С++
2256 / 1246 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
27.07.2011, 01:17 4
Цитата Сообщение от magl Посмотреть сообщение
как сделать что бы если размеры изображения больше чем 800х600, то пропорционально уменьшить его до этих размеров
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//Namespace Reference
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
 
/// <summary>
/// method for resizing an image
/// </summary>
/// <param name="img">the image to resize</param>
/// <param name="percentage">Percentage of change (i.e for 105% of the original provide 105)</param>
/// <returns></returns>
public Image Resize(Image img)
{
    //get the height and width of the image
    int originalW = img.Width;
    int originalH = img.Height;
 
    //get the new size based on the percentage change
    int resizedW = 800;
    int resizedH = 600;
 
    //create a new Bitmap the size of the new image
    Bitmap bmp = new Bitmap(resizedW, resizedH);
    //create a new graphic from the Bitmap
    Graphics graphic = Graphics.FromImage((Image)bmp);
    graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
    //draw the newly resized image
    graphic.DrawImage(img, 0, 0, resizedW, resizedH);
    //dispose and free up the resources
    graphic.Dispose();
    //return the image
    return (Image)bmp;
}
Авторство: PsychoCoder(c)
1
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 24
27.07.2011, 03:51  [ТС] 5
Понял как работает то что вы дали !
большое спасибо вам + !
НО помогите мне интегрировать это в этот когда загрузки

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
public partial class Image : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //Смотрим есть ли файл.
        if (FileUpload1.HasFile)
        {
            //Выбираем место для сохранения файла.
            String savePath = @"C:\WWW\WebSite2\";
            // Запоминаем имя файла.
            String fileName = FileUpload1.FileName;
            //К пути прибавляем имя файла.
            savePath += fileName;
            //Сохраняем изображение на сервере.
            FileUpload1.SaveAs(savePath);
            //****************************************************
                                        [B]ТУТ[/B]
            //****************************************************
            //Выводим изображение.
            Image1.ImageUrl = fileName;
            //Выводим что изображение отправлено.
            Label1.Text = "Изображение отправлено";
 
        }
            //Если файла нет, то не молчим!
        else
        {
            Label1.Text = "Вы не выбрали изображение!";
        }
    }
}
Как я понимаю тот код что вы дали должен быть там где надпись ТУТ Я пробовал вставить уже по разному не получается !
получается эту процедуру надо сделать перед выводом изображения на страницу !
Помогите пожалуйста !
0
CEO
Эксперт С++
2256 / 1246 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
27.07.2011, 11:54 6
magl, ну тут может быть 2 варианта - или сохранять измененный (800х600) рисунок, или выводить в блоке 800х600. Если сохранять - то надо читать изображение из аплоада, передавать в метод который приведен выше, получать результать и тогда уже сохранять. Если просто для вывода - укажите у <img /> атрибуты height и width.
1
2472 / 1920 / 346
Регистрация: 22.07.2011
Сообщений: 7,286
27.07.2011, 15:46 7
3-вариант: Сохраняем изображение из аплоада как оно есть, присваиваем что то вроде
C#
1
2
3
4
5
ImageID = Guid.New();
FileName = ImageID;
Image1.ImageUrl  = string.Format("~/Image.ashx?id={0}&w={1}&h={2}&interpolation=true",
ImageID,Image1.Weight,Image1.height)
Image1.Weight = Image1.Height = Unit.Empty;
, ну и в данном обработчеке уже применяем выше описанный метод интерполяции ).

З.Ы если указать ширину и высоту у Image1 то изображение может оказаться непропорциональным...
0
193 / 186 / 14
Регистрация: 09.02.2011
Сообщений: 457
27.07.2011, 17:02 8
Может тогда не стоит писать файл сразу на диск а читать его в Byte() или Image и делать ресайз а сохранять уже после изменения размера?

VB.NET
1
 Dim imag As System.Drawing.Image = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream)
и если надо передать, то передавать переменной сеанса
0
2472 / 1920 / 346
Регистрация: 22.07.2011
Сообщений: 7,286
27.07.2011, 21:55 9
Ну все от задачи зависит, может понадобится показывать файлы в оригинале (например при увеличении в галлереи) , а "~/Image.ashx удобен единым интерфейсом т.е можно обращаться из разных мест (в том числе и декларативных *.skin,*.aspx, *.css, *.js и т.п) и получать картинку нужного размера для контекста использования
0
boomik
03.11.2012, 13:58 10
Решил я сделать такой же проект. Все вроде бы ничего, но при загрузке изображения, картинка не показывается.
5 / 8 / 5
Регистрация: 01.11.2012
Сообщений: 50
06.11.2012, 07:00 11
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
if (OIFile.HasFile)
                    {
                        string path = Server.MapPath("~/images/News/");
                        Boolean fileOK = false;
                        string fileExtension = System.IO.Path.GetExtension(OIFile.FileName).ToLower();
                        string[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg", ".hzch" };
                        for (int i = 0; i < allowedExtensions.Length; i++)
                        {
                            if (fileExtension == allowedExtensions[i])
                            {
                                fileOK = true;
                                break;
                            }
                        }
                        //если все ок, то файл записывается в папку и конфинги
                        if (fileOK == true)
                        {
                            try
                            {
                                OIFile.PostedFile.SaveAs(path + "ИмяФайла" + fileExtension);
                                ResizeImage(path + "ИмяФайла" + System.IO.Path.GetExtension(OIFile.FileName).ToLower(), 337, 444, true);
                            }
                            catch
                            {
                                Label1.Text = "Произошла ошибка при загрузке изображения.";
                            }
                        }
                        //если формат неверный
                        else
                        {
                            Label1.Text = "Неверный формат изображения " + fileExtension;
                        }
                    }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//изменение размера картинки
        //стырено в тырнете как работает не спрашивать, но работает на ура с пропорциями, блек джеком и шлюхами
       //на случай если тебе звездный атлас загрузят, который в монитор не влезет
        public void ResizeImage(string OrigFile, int NewWidth, int MaxHeight, bool ResizeIfWider)
        {
            System.Drawing.Image FullSizeImage = System.Drawing.Image.FromFile(OrigFile);
            // Ensure the generated thumbnail is not being used by rotating it 360 degrees
            FullSizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
            FullSizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
            if (ResizeIfWider)
            {
                if (FullSizeImage.Width <= NewWidth)
                {
                    NewWidth = FullSizeImage.Width;
                }
            }
            int NewHeight = FullSizeImage.Height * NewWidth / FullSizeImage.Width;
            if (NewHeight > MaxHeight) // Height resize if necessary
            {
                NewWidth = FullSizeImage.Width * MaxHeight / FullSizeImage.Height;
                NewHeight = MaxHeight;
            }
            // Create the new image with the sizes we've calculated
            System.Drawing.Image NewImage = FullSizeImage.GetThumbnailImage(NewWidth, NewHeight, null, IntPtr.Zero);
            FullSizeImage.Dispose();
            NewImage.Save(OrigFile);
        }
далее нужно просто вывести "ИмяФайла" + fileExtension в сурс картинки
0
18 / 28 / 3
Регистрация: 20.06.2018
Сообщений: 144
02.09.2018, 21:37 12
Цитата Сообщение от Alligieri Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public Image Resize(Image img)
{
* * //get the height and width of the image
* * int originalW = img.Width;
* * int originalH = img.Height;
//get the new size based on the percentage change
* * int resizedW = 800;
* * int resizedH = 600;
//create a new Bitmap the size of the new image
* * Bitmap bmp = new Bitmap(resizedW, resizedH);
* * //create a new graphic from the Bitmap
* * Graphics graphic = Graphics.FromImage((Image)bmp);
* * graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
* * //draw the newly resized image
* * graphic.DrawImage(img, 0, 0, resizedW, resizedH);
* * //dispose and free up the resources
* * graphic.Dispose();
* * //return the image
* * return (Image)bmp;
}
Код работает, спасибо. Использую в своём проекте. Но, к сожалению, уменьшает изображение не пропорционально.
0
2472 / 1920 / 346
Регистрация: 22.07.2011
Сообщений: 7,286
02.09.2018, 21:58 13
bulvive,
Просто подгрузите с гитхаба https://imageresizing.net/download , там все есть.
0
18 / 28 / 3
Регистрация: 20.06.2018
Сообщений: 144
02.09.2018, 22:14 14
Вот немного модифицировал, может кому пригодится:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public Image Resize(Image img)      //  Уменьшение изображения
    {
        //get the height and width of the image
        int originalW = img.Width;
        int originalH = img.Height;         
        
        int resizedW = 320;
        int resizedH = (320 * originalH) / originalW; //Вычисляем новую высоту пропорционально
                
        Bitmap bmp = new Bitmap(resizedW, resizedH);    //create a new Bitmap the size of the new image
 
        Graphics graphic = Graphics.FromImage((Image)bmp);  //create a new graphic from the Bitmap
        graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
        
        graphic.DrawImage(img, 0, 0, resizedW, resizedH);    //draw the newly resized image    
        graphic.Dispose();  //dispose and free up the resources
        return (Image)bmp;  //возвращаем image
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2018, 22:14

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Загрузка изображения (только изображения)
Нужно обычная форма через которую надо загружать изображение в папку load Вот что я пока что...

Загрузка изображения
Здравствуйте! Подскажите, а как быстрее всего загрузить изображение в Bitmap, чтоб после загрузки...

Загрузка изображения.
Дайте, пожалуйста, полностью рабочий код загрузки и отображения на экране картинки формата bmp в...

Загрузка изображения
1. как загрузить картинку? пытаюсь загрузить изображение через Image1-&gt;Picture-&gt;LoadFromFile() но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.