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} мс.", 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} мс.", stopwatch.ElapsedMilliseconds);
}
// Вывод может выглядеть так:
// Чтение всех кэшированных пикселей заняло 1500 мс.
// Чтение всех пикселей без предварительного кэширования заняло 150000 мс.
### <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
если установлено в ```cstrue, перезаписать содержимое файла, в противном случае произойдет добавление.
SaveData(Stream)
Сохраняет данные.
protected abstract void SaveData(Stream stream)
Параметры
stream
Stream
Поток для сохранения данных.