Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Уменьшение размера изображения


Автор: Экскалупатор 21.12.2009, 18:36
Всем привет. есть следующая проблема(для меня). мне нужно на сайте хранить картинки. картинки могут быть разного размера и соответственно "веса". и мне нужно показывать эти картинки пользователям в виде превьюшек. вопрос можно ли как то уменьшить картинку и передать ее, ну к примеру, в asp:Image, без сохранения промежуточного(уменьшенного результата). или все таки надо сделать уменьшенные копии всех картинок, сохранить их, а потом уже эти сохраненные копии показывать пользователям?

Автор: diadiavova 21.12.2009, 23:12
В папку с картинками вставляешь такую штуковину smile 
Код

<%@ Page Language="C#" CodeBehind="preview.aspx.cs" Inherits="csaspnettests.images.preview" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.IO" %>

<%
    Response.ContentType = "image/jpg";
    string address =Path.Combine(Page.MapPath(""),  Request.Params["address"]);
    using (var img = System.Drawing.Image.FromFile(address))
    {
        using (Bitmap bmp = new Bitmap(img, 100, 100))
        {
            bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
        }
    }
     %>


А на странице, где нужно вставить превью, адрес нужной картинки будет выглядеть например так
images/preview.aspx?address=originalfilename.jpg
Как-то так
Код

<img alt="prev" src="images/preview.aspx?address=originalfilename.jpg" />


Где images/preview.aspx - адрес вышеприведённого кода, а originalfilename.jpg - имя файла нужной картинки(в том же каталоге). С остальным, я думаю, разберёшься.

Автор: Экскалупатор 21.12.2009, 23:41
мг. спасибо. попробую разобраться. 
а как сделать будет "правильнее"? сделать превьюшки и хранить их на диске, или каждый раз уменьшать полноразмерные изображения? на сайте картинки это основной контент. т.е. нужно будет постоянно уменьшать одни и теже картинке, и даже по несколько раз.

Автор: diadiavova 21.12.2009, 23:44
Точно не скажу, но думаю, это зависит от того, что для тебя более критично: место на диске или скорость выполнения скрипта.

Автор: Экскалупатор 21.12.2009, 23:47
ясно, попробуем выяснить в процессе.

Добавлено через 14 секунд
diadiavova, спасибо, за помощь.

Автор: grigoriyi 28.12.2009, 13:44
спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)