Альтернативы Системе. Рисование для использования с ASP.NET?

interface с являются более чистым способом записать чисто абстрактный класс. Можно сказать, что реализация не кралась в (конечно, Вы могли бы хотеть сделать это на определенных этапах обслуживания, которое делает интерфейсы плохо). Это об этом. Нет почти никакого различия, заметного к клиентскому коду.

JDBC является действительно плохим примером. Спросите любого, кто попытался реализовать интерфейсы и поддержать код между выпусками JDK. JAX-WS еще хуже, добавляя методы в выпусках обновления.

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

На оборотной стороне для интерфейсов, компилятор неспособен взять на некоторых невозможных бросках / instanceof с.

32
задан Uwe Keim 24 December 2018 в 08:29
поделиться

2 ответа

Большинство проблем, о которых я читал, относятся к ресурсам, которые не удаляются должным образом.

Я снова и снова использовал варианты этого кода без каких-либо проблем с веб-приложениями:

public void GenerateThumbNail(HttpPostedFile fil, string sPhysicalPath, 
                              string sOrgFileName,string sThumbNailFileName,
                              System.Drawing.Imaging.ImageFormat oFormat, int rez)
{

    try
    {

        System.Drawing.Image oImg = System.Drawing.Image.FromStream(fil.InputStream);

        decimal pixtosubstract = 0;
        decimal percentage;

        //default
        Size ThumbNailSizeToUse = new Size();
        if (ThumbNailSize.Width < oImg.Size.Width || ThumbNailSize.Height < oImg.Size.Height)
        {
            if (oImg.Size.Width > oImg.Size.Height)
            {
                percentage = (((decimal)oImg.Size.Width - (decimal)ThumbNailSize.Width) / (decimal)oImg.Size.Width);
                pixtosubstract = percentage * oImg.Size.Height;
                ThumbNailSizeToUse.Width = ThumbNailSize.Width;
                ThumbNailSizeToUse.Height = oImg.Size.Height - (int)pixtosubstract;
            }
            else
            {
                percentage = (((decimal)oImg.Size.Height - (decimal)ThumbNailSize.Height) / (decimal)oImg.Size.Height);
                pixtosubstract = percentage * (decimal)oImg.Size.Width;
                ThumbNailSizeToUse.Height = ThumbNailSize.Height;
                ThumbNailSizeToUse.Width = oImg.Size.Width - (int)pixtosubstract;
            }

        }
        else
        {
            ThumbNailSizeToUse.Width = oImg.Size.Width;
            ThumbNailSizeToUse.Height = oImg.Size.Height;
        }

        Bitmap bmp = new Bitmap(ThumbNailSizeToUse.Width, ThumbNailSizeToUse.Height);
        bmp.SetResolution(rez, rez);
        System.Drawing.Image oThumbNail = bmp;

        bmp = null;

        Graphics oGraphic = Graphics.FromImage(oThumbNail);

        oGraphic.CompositingQuality = CompositingQuality.HighQuality;

        oGraphic.SmoothingMode = SmoothingMode.HighQuality;

        oGraphic.InterpolationMode = InterpolationMode.HighQualityBicubic;

        Rectangle oRectangle = new Rectangle(0, 0, ThumbNailSizeToUse.Width, ThumbNailSizeToUse.Height);

        oGraphic.DrawImage(oImg, oRectangle);

        oThumbNail.Save(sPhysicalPath  + sThumbNailFileName, oFormat);

        oImg.Dispose();

    }
    catch (Exception ex)
    {
        Response.Write(ex.Message);
    }

}
1
ответ дан 27 November 2019 в 21:10
поделиться

Вы можете посмотреть http://gd-sharp.sourceforge.net/ , который является оболочкой для библиотеки GD. Я не

0
ответ дан 27 November 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: