transform swf net core
1.0.0
.NET CORE PORT ของ Flagstone Transfor SWF Java Library สำหรับการจัดการไฟล์ Adobe Flash SWF
ขึ้นอยู่กับ imagesesharp และ 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" ) ) ;