Řešení formátu souboru Adobe Photoshop
High Code API a bezplatné aplikace pro PSD, PSB se schopností zmenšit velikost souborů a komprimovat pomocí nezdokumentovaných možností
Zmenšit velikost souborů PSD
Zmenšit velikost velkého PSD je jednoduchá operace, pokud používáte Aspose.PSD. Zmenšení velikosti lze archivovat odstraněním dat mezipaměti ze souborů PSD, sloučení vrstev, převodu do formátu PSD s menším množstvím bitů na barvu. Také můžete změnit barevný režim souboru PSD, například změna z barvy CMYK na RGBA Color zmenší velikost souboru PSD. Tato aplikace používala nezdokumentované funkce formátu PSD, takže konečný výsledek může být přerušen. Použijte PSD File Redukovat pouze v případě, že vymažete vědět, co chcete archivovat.
Drag and drop a file or select add Image
You can reproduce the main functionality of this built-in app using Aspose.PSD
// 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 from Nuget package manager
Check the following list of documentation links:
Please check the offical documentation https://docs.aspose.com/psd/
Pokud potřebujete zmenšit velikost souboru PSB namísto PSD, můžete použít drobné úpravy této aplikace. Zkontrolujte prosím“Zmenšit velikost PSB„aplikace.