C# Говорят статический GIFs кроме анимированных

Для версии Ubuntu 14 полезными были специальные плагины:

https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - начать работу над jenkins startup

https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - запустить сценарий системы Groovy

И я выполнил задание, которое начинается с перезапуска Jenkins и устанавливает параметр.

Добавлена ​​система Groovy script для установки параметра. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src 'self';")

24
задан pastapockets 17 May 2010 в 11:43
поделиться

3 ответа

Вот статья о том, как определить количество кадров в GIF-анимации .

Image i = Image.FromFile(Server.MapPath("AnimatedGIF.gif"));

Imaging.FrameDimension FrameDimensions = 
    new Imaging.FrameDimension(i.FrameDimensionsList[0]);

int frames = i.GetFrameCount(FrameDimensions);

if (frames > 1) 
    Response.Write("Image is an animated GIF with " + frames + " frames");
else 
    Response.Write("Image is not an animated GIF.");

И я полагаю, вы могли бы просто сравнить это с 1.

26
ответ дан Jeff Atwood 28 November 2019 в 23:59
поделиться

System.Drawing.ImageAnimator.CanAnimate доступен с .NET 1.1.

Из MSDN :

Возвращает логическое значение, указывающее, содержит ли указанное изображение временные кадры.

Пример:

using (Image image = Image.FromFile("somefile.gif"))
{
    if (ImageAnimator.CanAnimate(image))
    {
        // GIF is animated
    }
    else
    {
        // GIF is not animated
    }
}
5
ответ дан deadpixel 28 November 2019 в 23:59
поделиться

Википедия содержит некоторую информацию о макете анимированного GIF по сравнению со статическим.

Анимированный GIF-файл содержит несколько изображений или кадров, которые должны отображаться последовательно, каждое из которых описывается своим собственным GCE (расширением графического управления), которому предшествует заголовок, содержимое которого по умолчанию применяется ко всем кадрам. После заголовка данные ориентированы на поток, а не на фиксированные индексы, поэтому местоположение начала GCE зависит от длины предшествующих GCE.

1
ответ дан ChrisF 28 November 2019 в 23:59
поделиться