Как к пропорциональному изменяют размер изображения какого-либо типа в.NET?

Остановка log4net во время времени выполнения требует изменения его файла конфигурации:

<level value="ALL" />

на

<level value="INFO" />

Если вы не можете изменить файл конфигурации, вам следует определить прокси для log.debug():

static public class LogDebugProxy
{
    static public bool LogDebug = false;
    static public void debug(log4net.ILog log)
    {
        if (LogDebug)
            log.debug();
    }
}

Затем замените log.debug() на LogDebugProxy.debug(log) во всем вашем проекте.

Теперь вы можете включить / отключить его по доверенности.

14
задан Community 23 May 2017 в 12:29
поделиться

2 ответа

Прежде всего Вы не захватываете ТЕКУЩУЮ высоту и ширину изображения. Для изменения размеров пропорционально, необходимо будет захватить текущую высоту/ширину изображения и изменить размер на основе этого.

Оттуда, найдите самый большой атрибут и измените размер пропорционально на основе этого.

Например, скажем, текущее изображение составляет 800 x 600, и Вы хотите изменить размер пропорционально в пространстве 400 x 400. Захватите самую большую пропорцию (800) и найдите, что это - отношение к новому размеру. 800-> 400 =.5 Теперь берут то отношение и умножаются вторым размером (600 *.5 = 300).

Ваш новый размер составляет 400 x 300. Вот пример PHP (извините.... Вы получите его хотя),

$thumb_width = 400;
$thumb_height = 400;

$orig_w=imagesx($src_img); 
$orig_h=imagesy($src_img);      

if ($orig_w>$orig_h){//find the greater proportion
    $ratio=$thumb_width/$orig_w; 
    $thumb_height=$orig_h*$ratio;
}else{
    $ratio=$thumb_height/$orig_h; 
    $thumb_width=$orig_w*$ratio;
}
16
ответ дан 1 December 2019 в 12:02
поделиться

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

public bool ResizeImage(string fileName, string imgFileName,
    ImageFormat format, int percent)
{
    try
    {
        using (Image img = Image.FromFile(fileName))
        {
            int width = img.Width * (percent * .01);
            int height = img.Height * (percent * .01);
            Image thumbNail = new Bitmap(width, height, img.PixelFormat);
            Graphics g = Graphics.FromImage(thumbNail);
            g.CompositingQuality = CompositingQuality.HighQuality;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            Rectangle rect = new Rectangle(0, 0, width, height);
            g.DrawImage(img, rect);
            thumbNail.Save(imgFileName, format);
        }
        return true;
    }
    catch (Exception)
    {
        return false;
    }
}
9
ответ дан 1 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

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