-
Нужно в программу вставить анимацию. Анимация очень простая - например, схлопывание картинки в точку. Программная реализация уже готова, теперь надо просто красиво нарисовать спрайты, изображающие различные фазы схлопывания. Если пытаться тупо уменьшать картинку через StretchDraw или в Paint'е, получается не очень красиво, нарушается симметрия деталей. Не знает ли кто программу, которая заточена под такие задачи? Что-то типа того, что на входе - картинка и желаемый способ исчезания, на выходе - серия картинок, показывающих последовательно фазы исчезания? Очень уж не хочется вручную каждую фазу править. У рисунков исходный размер 48х48, если это имеет значение.
-
Sony Vegas, Boris Effects, Adobe Flash action script и другие.
И есть такой спецкомпонент для Delphi как ImageEN :-)
-
> Анимация очень простая - например, схлопывание картинки > в точку.
> У рисунков исходный размер 48х48, если это имеет значение.
Я бы для такой задачи использовал фотошоп и макросы. Произвели нужные превращения для одного рисунка и записали, потом проиграли для остальных.
А вообще, наверное, графику стоит предоставить дизайнерам, а то была тут недавно цитата про сапожника, пироги, и результаты их совмещения в одном предложении. :)
-
Фотошоп + скрипт (не макросы). Вот пример скрипта для фотошопа, который делает уменьшение картинки за несколько шагов. Его несложно переделать в то что требуется. Файл сохранить с расширением .js
var docRef = app.activeDocument;
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var docHeight = docRef.height;
var docWidth = docRef.width;
var docResolution = 400.0;
var MaxWidth = 2362;
var MaxHeight = 1581;
var coeffH = parseInt(docWidth) / parseInt(docHeight);
var coeffW = parseInt(docHeight) / parseInt(docWidth);
function makeFrame (BackgroundColor, ForegroundColor, Size)
app.foregroundColor = oldFgColor;
app.backgroundColor = oldBgColor;
}
function SaveAsJPEG (Destination, TailName, Quality, Limit) else
}
}
function ResizeStepByStep (MaxWidth, MaxHeight, Method)
docHeight = coeffW * MaxWidth;
docWidth = MaxWidth;
}
if (coeffH <= Ratio)
docWidth = coeffH * MaxHeight;
docHeight = MaxHeight;
}
docRef.resizeImage(docWidth, docHeight, docResolution, Method);
}
}
savedState = docRef.activeHistoryState;
ResizeStepByStep(2362, 1581, ResampleMethod.BICUBICSHARPER);
SaveAsJPEG("c:/tmp/", "_PRINT", 12, 5000000);
docRef.activeHistoryState = savedState;
docRef.close(SaveOptions.DONOTSAVECHANGES);
app.preferences.rulerUnits = strtRulerUnits;
docRef = null;
-
Правда в нем много лишнего (я им фотки для печати готовлю), но все довольно просто.
|