Class DataStreamSupporter
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
データストリームコンテナ。
[JsonObject(MemberSerialization.OptIn)]
public abstract class DataStreamSupporter : DisposableObject, IDisposable
継承
object ← DisposableObject ← DataStreamSupporter
派生
実装
継承メンバー
DisposableObject.Dispose(), DisposableObject.ReleaseManagedResources(), DisposableObject.ReleaseUnmanagedResources(), DisposableObject.VerifyNotDisposed(), DisposableObject.Disposed, object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
コンストラクター
DataStreamSupporter()
Aspose.Imaging.DataStreamSupporterクラスの新しいインスタンスを初期化します。
[JsonConstructor]
protected DataStreamSupporter()
フィールド
timeout
同期を待つためのタイムアウト。
[JsonProperty]
protected int timeout
フィールド値
プロパティ
DataStreamContainer
オブジェクトのデータストリームを取得します。
public StreamContainer DataStreamContainer { get; }
プロパティ値
IsCached
オブジェクトのデータが現在キャッシュされており、データの読み取りが必要ないかどうかを示す値を取得します。
public abstract bool IsCached { get; }
プロパティ値
メソッド
CacheData()
データをキャッシュし、基盤となるAspose.Imaging.DataStreamSupporter.DataStreamContainerから追加のデータ読み込みが行われないことを保証します。
public abstract void CacheData()
例
以下の例は、画像キャッシングがパフォーマンスに与える影響を示しています。一般的には、キャッシュされたデータの読み取りは、非キャッシュデータの読み取りよりも速く行われます。```csharp [C#]
string dir = "c:\\temp\\";
// PNGファイルから画像をロードします。
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
// すべてのピクセルデータをキャッシュし、基盤となるデータストリームからの追加のデータ読み込みを行わないようにします
image.CacheData();
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
// すべてのピクセルの読み取りは非常に速いです。
Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
for (int y = 0; y < image.Height; y++)
{
for (int x = 0; x < image.Width; x++)
{
int color = rasterImage.GetArgb32Pixel(x, y);
}
}
stopwatch.Stop();
System.Console.WriteLine("すべてのキャッシュされたピクセルの読み取りに {0} ms かかりました。", stopwatch.ElapsedMilliseconds);
}
// PNGファイルから画像をロードします
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
// すべてのピクセルの読み取りはキャッシュ時ほど速くはありません
Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
for (int y = 0; y < image.Height; y++)
{
for (int x = 0; x < image.Width; x++)
{
int color = rasterImage.GetArgb32Pixel(x, y);
}
}
stopwatch.Stop();
System.Console.WriteLine("事前キャッシングなしでのすべてのピクセルの読み取りに {0} ms かかりました。", stopwatch.ElapsedMilliseconds);
}
// 出力は次のようになります:
// すべてのキャッシュされたピクセルの読み取りに 1500 ms かかりました。
// 事前キャッシングなしでのすべてのピクセルの読み取りに 150000 ms かかりました。
### <a id="Aspose_Imaging_DataStreamSupporter_OnDataStreamContainerChanging_Aspose_Imaging_StreamContainer_"></a> OnDataStreamContainerChanging\(StreamContainer\)
データストリームコンテナが変更されると呼び出されます。
```csharp
protected virtual void OnDataStreamContainerChanging(StreamContainer streamContainer)
パラメーター
streamContainer
StreamContainer
ストリームコンテナ。
ReleaseManagedResources()
管理リソースを解放します。ここでアンマネージリソースが解放されないようにしてください。すでに解放されている可能性があります。
protected override void ReleaseManagedResources()
Save()
オブジェクトのデータを現在のAspose.Imaging.DataStreamSupporterに保存します。
public virtual void Save()
Save(Stream)
オブジェクトのデータを指定されたストリームに保存します。
public void Save(Stream stream)
パラメーター
stream
Stream
オブジェクトのデータを保存するストリーム。
Save(string)
オブジェクトのデータを指定されたファイルの場所に保存します。
public virtual void Save(string filePath)
パラメーター
filePath
string
オブジェクトのデータを保存するファイルパス。
Save(string, bool)
オブジェクトのデータを指定されたファイルの場所に保存します。
public virtual void Save(string filePath, bool overWrite)
パラメーター
filePath
string
オブジェクトのデータを保存するファイルパス。
overWrite
bool
### <a id="Aspose_Imaging_DataStreamSupporter_SaveData_System_IO_Stream_"></a> SaveData\(Stream\)
データを保存します。
```csharp
protected abstract void SaveData(Stream stream)
パラメーター
stream
Stream
データを保存するストリーム。