Class DataStreamSupporter

Class DataStreamSupporter

Название пространства: Aspose.Imaging Ассоциация: Aspose.Imaging.dll (25.4.0)

Контейнер для потока данных.

[JsonObject(MemberSerialization.OptIn)]
public abstract class DataStreamSupporter : DisposableObject, IDisposable

Inheritance

object DisposableObject DataStreamSupporter

Derived

Image

Implements

IDisposable

Наследованные члены

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()

Constructors

DataStreamSupporter()

Инициализует новую инстанцию класса Aspose.Imaging.DataStreamSupporter.

[JsonConstructor]
protected DataStreamSupporter()

Fields

Время

Время в ожидании синхронизации

[JsonProperty]
protected int timeout

Полевая ценность

int

Properties

DataStreamContainer

Получается поток данных объекта.

public StreamContainer DataStreamContainer { get; }

Стоимость недвижимости

StreamContainer

IsCached

Получается значение, указывающее на то, скрываются ли данные объекта в настоящее время и не требуется чтения данных.

public abstract bool IsCached { get; }

Стоимость недвижимости

bool

Methods

CacheData()

Закрывает данные и гарантирует, что дополнительные загрузки данных не будут выполнены с подчиненного Aspose.Imaging.DataStreamSupporter.

public abstract void CacheData()

Examples

Следующий пример показывает, как caching изображения влияет на производительность.В общем случае, чтение кеш-данных выполняется быстрее, чем чтения не-кашированных данных.

string dir = "c:\\temp\\";

                                                                                                                                                                    // Load an image from a PNG file.
                                                                                                                                                                    using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
                                                                                                                                                                    {
                                                                                                                                                                        // Cache all pixel data so that no additional data loading will be performed from the underlying data stream
                                                                                                                                                                        image.CacheData();

                                                                                                                                                                        System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
                                                                                                                                                                        stopwatch.Start();

                                                                                                                                                                        // Reading all pixels is pretty fast.
                                                                                                                                                                        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("Reading all cached pixels took {0} ms.", stopwatch.ElapsedMilliseconds);
                                                                                                                                                                    }

                                                                                                                                                                    // Load an image from a PNG file
                                                                                                                                                                    using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
                                                                                                                                                                    {
                                                                                                                                                                        System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
                                                                                                                                                                        stopwatch.Start();

                                                                                                                                                                        // Reading all pixels is not as fast as when caching
                                                                                                                                                                        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("Reading all pixels without preliminary caching took {0} ms.", stopwatch.ElapsedMilliseconds);
                                                                                                                                                                    }

                                                                                                                                                                    // The output may look like this:
                                                                                                                                                                    // Reading all cached pixels took 1500 ms.
                                                                                                                                                                    // Reading all pixels without preliminary caching took 150000 ms.

OnDataStreamContainerChanging(StreamContainer)

Названо, когда контейнер потока данных меняется.

protected virtual void OnDataStreamContainerChanging(StreamContainer streamContainer)

Parameters

streamContainer StreamContainer

Поток контейнера .

ReleaseManagedResources()

Убедитесь, что не управляемые ресурсы не выпускаются здесь, так как они могут быть уже выпущены.

protected override void ReleaseManagedResources()

Save()

Сохранить данные объекта в текущий Aspose.Imaging.DataStreamSupporter.

public virtual void Save()

Save(Stream)

Сохранить данные объекта в указанный поток.

public void Save(Stream stream)

Parameters

stream Stream

Поток для сохранения данных объекта.

Save(Стриг)

Сохранить данные объекта в указанное местоположение файла.

public virtual void Save(string filePath)

Parameters

filePath string

Путь файла для сохранения данных объекта.

Save(Стриг, Боол)

Сохранить данные объекта в указанное местоположение файла.

public virtual void Save(string filePath, bool overWrite)

Parameters

filePath string

Путь файла для сохранения данных объекта.

overWrite bool

Если вы поставили на «верный» над написанием содержимого файла, то в противном случае появится дополнение.

SaveData(Stream)

Сохранить данные.

protected abstract void SaveData(Stream stream)

Parameters

stream Stream

Поток для сохранения данных.

 Русский