Adobe Photoshop 文件格式解决方案
High Code API 和适用于 PSD、PSB 的免费应用程序,能够缩小文件大小并使用未记录的可能性进行压缩
免费的在线应用程序,可压缩PSD并减小其大小
使用有损和无损方法压缩大型 PSD 和 PSB 文件。发现 Aspose.PSD 的隐藏潜力。PSD 文件中的数据并不总是安全的,所以如果你经常使用它,你应该在压缩后测试 PSD 文件。请注意,某些压缩功能是有损的,因此在进行这些类型的压缩之后,您将无法恢复初始的PSD文件。此功能按 “原样” 提供。您可以压缩 PSD 或减小 PSB 文件的大小。
Drag and drop a file or select add Image
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
Check the following list of documentation links:
Please check the offical documentation https://docs.aspose.com/psd/
Aspose.PSD 压缩功能使用高代码 API。压缩 PSD 解决方案有 Java 和 .NET 版本。您可以使用 Aspose.PSD 在 Web 服务的后端执行压缩或其他任务。