Остановка 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)
во всем вашем проекте.
Теперь вы можете включить / отключить его по доверенности.
Прежде всего Вы не захватываете ТЕКУЩУЮ высоту и ширину изображения. Для изменения размеров пропорционально, необходимо будет захватить текущую высоту/ширину изображения и изменить размер на основе этого.
Оттуда, найдите самый большой атрибут и измените размер пропорционально на основе этого.
Например, скажем, текущее изображение составляет 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;
}
Я думаю, что Ваш код прекрасен, но берущий в ширине и высоте как параметры то, где Вы идете не так, как надо, по-моему. Почему должен, вызывающая сторона этого метода должна решить, как большой они хотят ширину и высоту? Я предложил бы изменить его на процент:
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;
}
}