Product Family

Adobe® Photoshop® -tiedostomuotoratkaisu

Korkean koodin sovellusliittymät ja ilmaiset sovellukset PSD: lle, PSB: lle, joilla on kyky pienentää tiedostojen kokoa ja pakata dokumentoimattomien mahdollisuuksien avulla

Ilmainen online-sovellus PSD: n pakkaamiseen ja sen koon pienentämiseen

Pakkaa suuret PSD- ja PSB-tiedostot häviöttömillä ja häviöttömillä menetelmillä. Löydä piilotettu potentiaali Aspose.PSD. Se ei ole aina turvallista Data PSD File, joten jos käytät sitä usein kannattaa testata PSD tiedostot pakkauksen jälkeen. Huomaa, että jotkut pakkausominaisuudet ovat häviöllisiä, joten tämäntyyppisten pakkausten jälkeen et voi palauttaa alkuperäisiä PSD-tiedostoja. Tämä ominaisuus tarjotaan ”sellaisenaan”. Voit pakata PSD tai pienentää PSB-tiedostoja.

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

      // Lossless compression
        // 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
        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.
        // 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 from Nuget package manager

Aspose.PSD pakkaa ominaisuuksia käyttää korkean koodin API. Pakkaa PSD Solution on saatavilla Java ja .Net. Voit käyttää Aspose.PSD pakkausta tai muita tehtäviä Back-end web-palvelun.