transform swf net core
1.0.0
.NET CORE PORT FAGHSTONE TRASNACK Library Java для манипуляции файлов Adobe Flash SWF
Зависит от ImageSharp и Iconic.zlib.netstandard
Пакет доступен на Nuget https://www.nuget.org/packages/swftransform/0.0.1-alpha (предварительный релиз, поскольку Imagesharp предварительно вылечет во время публикации)
Для оригинальной документации см. Http://www.flagstonesoftware.com/transform/ и http://www.flagstonesoftware.com/cookbook/index.html
Быстрый пример - замените изображение в файле SWF:
using com . flagstone . transform ;
using com . flagstone . transform . image ;
using com . flagstone . transform . util . image ;
///...
var movie = new Movie ( ) ;
movie . decodeFromFile ( new FileInfo ( "orig.swf" ) ) ; //read swf from file
//print all objects in swf file
foreach ( var obj in movie . Objects )
{
Debug . WriteLine ( obj . ToString ( ) ) ;
}
//find image in SWF file (there can be several types - DefineImage, DefineImage2, DefineJpegImage, etc
var image = movie . Objects . OfType < DefineImage > ( ) . FirstOrDefault ( ) ;
if ( image != null )
{
var imgBytes = imageStream . ToArray ( ) ; //in this particular example we have RAW image stream in RGBA format
PNGDecoder . applyAlpha ( imgBytes ) ;
var compressed = PNGDecoder . zip ( imgBytes ) ;
var newImage = new DefineImage ( image . Identifier , ( int ) size . Width , ( int ) size . Height , compressed , 24 ) ; //create SWF image directly
movie . Objects . Insert ( movie . Objects . IndexOf ( image ) , newImage ) ;
movie . Objects . Remove ( image ) ;
}
movie . encodeToFile ( new FileInfo ( "modified.swf" ) ) ;