Class DataStreamSupporter

Class DataStreamSupporter

Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)

Контейнер потоку даних.

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

Спадкування

objectDisposableObjectDataStreamSupporter

Наслідок

Image

Реалізує

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

Конструктори

DataStreamSupporter()

Ініціалізує новий екземпляр класу Aspose.Imaging.DataStreamSupporter.

[JsonConstructor]
protected DataStreamSupporter()

Поля

timeout

Таймаут для очікування синхронізації

[JsonProperty]
protected int timeout

Значення поля

int

Властивості

DataStreamContainer

Отримує потік даних об’єкта.

public StreamContainer DataStreamContainer { get; }

Значення властивості

StreamContainer

IsCached

Отримує значення, що вказує, чи дані об’єкта в даний момент кешовані і чи не потрібно читати дані.

public abstract bool IsCached { get; }

Значення властивості

bool

Методи

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

якщо встановлено ```cstrue, перезаписати вміст файлу, в іншому випадку відбудеться додавання.

SaveData(Stream)

Зберігає дані.

protected abstract void SaveData(Stream stream)

Параметри

stream Stream

Потік для збереження даних.

 Українська