本文整理汇总了C#中ImageMagick.MagickImageCollection.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# MagickImageCollection.Dispose方法的具体用法?C# MagickImageCollection.Dispose怎么用?C# MagickImageCollection.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageMagick.MagickImageCollection
的用法示例。
在下文中一共展示了MagickImageCollection.Dispose方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Exec
public override void Exec()
{
//var pages = this.Beg;
L.D("executing pdf2img by file({0}),destination format({1})", this.AsSrc, this.AsDstF);
this.Cdl.add();
var tf_base = Path.GetTempFileName();
var tf = tf_base + Path.GetExtension(this.AsSrc);
MagickImageCollection images = new MagickImageCollection();
try
{
File.Copy(this.AsSrc, tf, true);
this.Pdf2imgProc(images, tf, -1, 0);
}
catch (Exception e)
{
L.E(e, "executing pdf2img by file({0}),destination format({1}) fail with error->{2}", tf, this.AsDstF, e.Message);
this.Result.Code = 500;
this.Fails.Add(e);
}
try
{
File.Delete(tf);
File.Delete(tf_base);
}
catch (Exception e)
{
L.W("executing pdf2img on delete temp file({0}) error->{1}", tf, e.Message);
}
this.Cdl.done();
this.Cdl.wait();
images.Dispose();
L.D("executing pdf2img by file({0}),destination format({1}) done with pages({2}),fails({3})", this.AsSrc, this.AsDstF, this.Result.Count, this.Fails.Count);
}
示例2: Test_Read
public void Test_Read()
{
MagickImageCollection collection = new MagickImageCollection();
ExceptionAssert.Throws<ArgumentException>(delegate ()
{
collection.Read(new byte[0]);
});
ExceptionAssert.Throws<ArgumentNullException>(delegate ()
{
collection.Read((byte[])null);
});
ExceptionAssert.Throws<ArgumentNullException>(delegate ()
{
collection.Read((Stream)null);
});
ExceptionAssert.Throws<ArgumentNullException>(delegate ()
{
collection.Read((string)null);
});
ExceptionAssert.Throws<ArgumentException>(delegate ()
{
collection.Read(Files.Missing);
});
collection.Read(File.ReadAllBytes(Files.RoseSparkleGIF));
Assert.AreEqual(3, collection.Count);
using (FileStream fs = File.OpenRead(Files.RoseSparkleGIF))
{
collection.Read(fs);
Assert.AreEqual(3, collection.Count);
}
collection.Read(Files.RoseSparkleGIF);
Test_Read(collection);
collection.Read(new FileInfo(Files.RoseSparkleGIF));
collection.Dispose();
}
示例3: Test_Ping
public void Test_Ping()
{
MagickImageCollection collection = new MagickImageCollection();
ExceptionAssert.Throws<ArgumentException>(delegate ()
{
collection.Ping(new byte[0]);
});
ExceptionAssert.Throws<ArgumentNullException>(delegate ()
{
collection.Ping((byte[])null);
});
ExceptionAssert.Throws<ArgumentNullException>(delegate ()
{
collection.Ping((Stream)null);
});
ExceptionAssert.Throws<ArgumentNullException>(delegate ()
{
collection.Ping((string)null);
});
ExceptionAssert.Throws<ArgumentException>(delegate ()
{
collection.Ping(Files.Missing);
});
collection.Ping(Files.FujiFilmFinePixS1ProJPG);
Test_Ping(collection);
Assert.AreEqual(600, collection[0].Width);
Assert.AreEqual(400, collection[0].Height);
collection.Ping(new FileInfo(Files.FujiFilmFinePixS1ProJPG));
Test_Ping(collection);
Assert.AreEqual(600, collection[0].Width);
Assert.AreEqual(400, collection[0].Height);
collection.Ping(File.ReadAllBytes(Files.FujiFilmFinePixS1ProJPG));
Test_Ping(collection);
Assert.AreEqual(600, collection[0].Width);
Assert.AreEqual(400, collection[0].Height);
collection.Read(Files.SnakewarePNG);
Assert.AreEqual(286, collection[0].Width);
Assert.AreEqual(67, collection[0].Height);
using (PixelCollection pixels = collection[0].GetPixels())
{
Assert.AreEqual(38324, pixels.ToArray().Length);
}
collection.Dispose();
}
示例4: Test_Dispose
public void Test_Dispose()
{
MagickImage image = new MagickImage(MagickColors.Red, 10, 10);
MagickImageCollection collection = new MagickImageCollection();
collection.Add(image);
collection.Dispose();
Assert.AreEqual(0, collection.Count);
ExceptionAssert.Throws<ObjectDisposedException>(delegate ()
{
image.Flip();
});
}
示例5: SaveFile
private void SaveFile()
{
try
{
progress = 0;
progressMax = (recorded.Count * 4);
MagickImage[] mia = new MagickImage[recorded.Count];
Parallel.For(0, recorded.Count, (i) =>
{
mia[i] = new MagickImage(recorded[i].Bitmap);
int pr = Interlocked.Increment(ref progress);
if (pr % 16 == 0) Invoke(new EmptyCallback(showProgress));
});
progressMax = progress + (mia.Length * 3);
bool[] mid = new bool[mia.Length];
mid[0] = false;
Parallel.For(1, mia.Length, (i) =>
{
mid[i] = mia[i].Equals(mia[i - 1]);
int pr = Interlocked.Increment(ref progress);
if (pr % 4 == 0) Invoke(new EmptyCallback(showProgress));
});
Parallel.For(1, mia.Length, (i) =>
{
if (mid[i])
{
mia[i].Dispose();
mia[i] = null;
}
});
progressMax = progress + (mia.Length * 2);
MagickImageCollection mic = new MagickImageCollection();
QuantizeSettings qs = new QuantizeSettings();
qs.Colors = 256;
int timeOffset = 0;
int addi = -1;
for (int i = 0; i < mia.Length; ++i)
{
MagickImage mi = mia[i];
int addDelay;
if (mi != null)
{
mic.Add(mi);
++addi;
addDelay = 0;
}
else
{
addDelay = mic[addi].AnimationDelay;
}
int delayMs = recorded[((i + 1) < recorded.Count) ? i + 1 : i].Time + timeOffset;
int delayCs = delayMs / 10;
timeOffset = delayMs - (delayCs * 10);
mic[addi].AnimationDelay = delayCs + addDelay;
++progress;
if (progress % 32 == 0) Invoke(new EmptyCallback(showProgress));
}
// mic.OptimizePlus();
progressMax = progress + (mic.Count);
Parallel.For(0, mic.Count, (i) =>
{
mic[i].Quantize(qs);
int pr = Interlocked.Increment(ref progress);
Invoke(new EmptyCallback(showProgress));
});
mic.Write(fileName);
Parallel.For(0, mic.Count, (i) =>
{
mic[i].Dispose();
});
mic.Dispose();
GC.Collect();
}
catch (Exception ex)
{
exc = ex;
}
Invoke(new EmptyCallback(doneSaving));
}