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


### <a id="Aspose_Imaging_DataStreamSupporter_SaveData_System_IO_Stream_"></a> SaveData\(Stream\)

데이터를 저장합니다.

```csharp
protected abstract void SaveData(Stream stream)

매개변수

stream Stream

데이터를 저장할 스트림입니다.

 한국어