Product Family

어도비 포토샵 파일 포맷 솔루션

문서화되지 않은 가능성을 사용하여 파일 크기를 줄이고 압축할 수 있는 PSD, PSB용 하이 코드 API 및 무료 앱

PSD 파일 크기 줄이기

큰 PSD의 크기를 줄이는 작업은 Aspose.PSD 를 사용하는 경우 간단한 작업입니다.PSD 파일에서 캐시 데이터를 제거하고, 레이어를 병합하고, 색상 당 비트 수를 줄이면서 PSD 형식으로 변환하여 크기를 줄일 수 있습니다.또한 PSD 파일의 색상 모드를 변경할 수 있습니다. 예를 들어 CMYK 색상을 RGBA 색상으로 변경하면 PSD 파일 크기가 줄어듭니다.이 앱은 PSD 형식의 문서화되지 않은 기능을 사용했기 때문에 최종 결과가 깨질 수 있습니다.보관하려는 내용을 확실히 알고 있는 경우에만 PSD 파일 감소를 사용하십시오.

Drag and drop a file or select add Image

your image

Lossless PSD Compress methods

Lossy PSD Compress methods

Compress PSD

You can reproduce the main functionality of this built-in app using Aspose.PSD for .NET

        // Lossless PSD file reduce operation
        // Remove Cache Data			
        Stream RemoveCacheData(PsdImage image)
        {
            foreach (var layer in image.Layers)
            {
                // Can be applied
                if (layer is TextLayer || layer is FillLayer)
                {
                    layer.SaveArgb32Pixels(layer.Bounds, new int[layer.Bounds.Width * layer.Bounds.Height]);
                }
            }

            var stream = new MemoryStream();
            image.Save(stream, new PsdOptions(image));

            return stream;
        }

        // Applying RLE Compression to reduce size of PSD
        Stream ApplyRleCompression(PsdImage image)
        {
            foreach (var layer in image.Layers)
            {

                foreach (var channelInformation in layer.ChannelInformation)
                {
                    // Can be applied
                    if (channelInformation.CompressionMethod == CompressionMethod.Raw)
                    {
                        var stream = new MemoryStream();
                        image.Save(stream, new PsdOptions(image)
                        {
                            CompressionMethod = CompressionMethod.RLE
                        });

                        return stream;
                    }
                }
            }

            // Can not be applied
            return null;
        }

        // Lossy methods of PSD Size Reducing
        // 8 Bit Conversion
        Stream ApplyConversionTo8Bit(PsdImage image)
        {
            if (image.BitsPerChannel > 8)
            {
                var stream = new MemoryStream();
                image.Save(stream, new PsdOptions(image)
                {
                    ChannelBitsCount = 8
                });

                stream.Position = 0;

                return stream;
            }

            return null;
        }
       
        // RGBA Conversion
        Stream ApplyConversionToRGBA(PsdImage image)
        {
            if (image.ColorMode == ColorModes.Cmyk)
            {
                var stream = new MemoryStream();
                image.Save(stream, new PsdOptions(image)
                {
                    ColorMode = ColorModes.Rgb
                });

                stream.Position = 0;

                return stream;
            }

            return null;
        }

        // Layers merging
        Stream ApplyMergingLayers(PsdImage image)
        {
            if (image.Layers.Length > 1)
            {
                image.FlattenImage();
                var stream = new MemoryStream();
                image.Save(stream, new PsdOptions(image));

                stream.Position = 0;

                return stream;
            }

            return null;
        }

        // Remove Not Visible Layers
        Stream RemoveNotVisibleLayers(PsdImage image)
        {
            var layersSet = new List<Layer>();
            foreach (var layer in image.Layers)
            {
                // Can be applied
                if ((!layer.IsVisible || !layer.IsVisibleInGroup) && !(layer is LayerGroup))
                {
                    layersSet.Add(layer);
                }
            }

            image.Layers = layersSet.ToArray();
            var stream = new MemoryStream();
            image.Save(stream, new PsdOptions(image));

            return stream;
        }

You can download Aspose.PSD for .NET from Nuget package manager

You can reproduce the main functionality of this built-in app using Aspose.PSD for Java

    public class CompressionUtils {

    public static OutputStream removeCacheData(PsdImage image) {
        for (Layer layer : image.getLayers()) {
            if (layer instanceof TextLayer || layer instanceof FillLayer) {
                layer.saveArgb32Pixels(layer.getBounds(), new int[layer.getBounds().getWidth() * layer.getBounds().getHeight()]);
            }
        }

        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        image.save(stream, new PsdOptions(image));

        return stream;
    }

    public static OutputStream applyRleCompression(PsdImage image) {
        for (Layer layer : image.getLayers()) {
            for (var channelInformation : layer.getChannelInformation()) {
                if (channelInformation.getCompressionMethod() == CompressionMethod.Raw) {
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    image.save(stream, new PsdOptions(image) {{
                        setCompressionMethod(CompressionMethod.RLE);
                    }});

                    return stream;
                }
            }
        }

        return null;
    }

    public static OutputStream applyConversionTo8Bit(PsdImage image) {
        if (image.getBitsPerChannel() > 8) {
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            image.save(stream, new PsdOptions(image) {{
                setChannelBitsCount(8);
            }});

            stream.Position = 0;

            return stream;
        }

        return null;
    }

    public static OutputStream applyConversionToRGBA(PsdImage image) {
        if (image.getColorMode() == ColorModes.Cmyk) {
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            image.save(stream, new PsdOptions(image) {{
                setColorMode(ColorModes.Rgb);
            }});

            stream.Position = 0;

            return stream;
        }

        return null;
    }

    public static OutputStream applyMergingLayers(PsdImage image) {
        if (image.getLayers().length > 1) {
            image.flattenImage();
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            image.save(stream, new PsdOptions(image));

            stream.Position = 0;

            return stream;
        }

        return null;
    }

    public static OutputStream removeNotVisibleLayers(PsdImage image) {
        List layersSet = new ArrayList<>();
        for (Layer layer : image.getLayers()) {
            if ((!layer.isVisible() || !layer.isVisibleInGroup()) && !(layer instanceof LayerGroup)) {
                layersSet.add(layer);
            }
        }

        image.setLayers(layersSet.toArray(new Layer[0]));
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        image.save(stream, new PsdOptions(image));

        return stream;
    }
}

You can download Aspose.PSD for Java from Aspose Repository

This App is completely free, but it just a small piece of functionality that offers for you Aspose.PSD library. You can make your own app with any functionality of Aspose.PSD. If you can not find needed feature in Aspose.PSD, you can post on PSD Support Forum. The great support, different priceing plans, prioritized bug fixes and feature releasing for the Paid Support Customers.

List of Aspose.PSD versions for different configurations

Aspose.PSD for .NET

Aspose.PSD for Java


Aspose.PSD for .NET has the version for the most popular .NET versions including: .NET Framework 2, 3.5, 4.0, 4.0CP, .netstandard 2, .NET 5, 6, 7. Version of .NET Library for .NET 7 is suitable for the mobile development
Aspose.PSD for Java made on the Java 1.6, so it can be used in the any popular Java configurations. It's suitable for Cross-platform developement
Official Aspose.PSD for .NET pageOfficial Aspose.PSD for Java page
Aspose.PSD for .NET Pricing plansAspose.PSD for Java Pricing plans

Please check the support forum. Where you can feel the real customer care

PSD 대신 PSB 파일의 크기를 줄여야 하는 경우 이 앱을 약간 수정할 수 있습니다.확인해 주세요.”PSB의 크기를 줄이십시오“애플리케이션.