public void SaveCmykPlanes(
RasterImage image,
Stream stream,
RasterImageFormat format,
int bitsPerPlane,
int pageNumber,
CodecsSavePageMode pageMode
)
- (BOOL)saveCmykPlanes:(LTRasterImage *)image
stream:(LTLeadStream *)stream
format:(LTRasterImageFormat)format
bitsPerPlane:(NSInteger)bitsPerPlane
pageNumber:(NSInteger)pageNumber
pageMode:(LTCodecsSavePageMode)pageMode
error:(NSError **)error
public void saveCmykPlanes(RasterImage image, ILeadStream stream, RasterImageFormat format, int bitsPerPlane, int pageNumber, CodecsSavePageMode pageMode)
public:
void SaveCmykPlanes(
RasterImage^ image,
Stream^ stream,
RasterImageFormat format,
int bitsPerPlane,
int pageNumber,
CodecsSavePageMode pageMode
)
def SaveCmykPlanes(self,image,stream,format,bitsPerPlane,pageNumber,pageMode):
image
The image that contains the CMKY planes to be saved.
stream
A Stream that will contain the image data to save.
format
Specifies the output file format. Valid values are:
bitsPerPlane
Resulting bits per pixel for each plane. Possible values:
Value | Meaning |
---|---|
0 | Default bits per pixel. LEADTOOLS will pick the closest valid value. |
8 | Save 8 bits per component. The generated file will contain 32 bits (no alpha) or 40 bits (if alpha). Note that GetInformation or GetInformationAsync will report 8 bits less (24 or 32-bit). |
16 | Save 16 bits per component. The generated file will contain 64 bits (no alpha) or 80 bits (if alpha). Note that GetInformation or GetInformationAsync will report 16 bits less (48 or 64-bit). Not available for JPEG |
pageNumber
Specifies the reference page number when saving a multipage file.
pageMode
Determines how to handle the page when saving to multipage formats.
This method will save a CMYK file without performing a color conversion. Each page in the image will contain one of the C, M, Y, K, Alpha planes. The Alpha plane is optional. The image should contain:
The pages are in this order: C, M, Y, K, Alpha (optional). All the pages must have the same width, height, bits per pixel and palette.
If you want to save the pages of the image as a file format not supported by this function, create a BGR image and save the generated image using the Save method. The BGR bitmap can be created using ColorMergeCommand or RasterColorConverterEngine.ConvertCmykPlanes.
CMYK TIFF files can be saved as planar (each image in its own plane) or chunky (the data from all the images will be interleaved during saving). Planar images will be saved faster, while chunky images are more compatible (some TIFF readers will not read planar files) and require less memory during the load process. The default is to save chunky files.
You select the planar save mode by setting the RasterCodecs.Options.Tiff.Save.SavePlanar property to true.
This method uses the values of RasterCodecs.Options.Tiff.Save.ImageFileDirectoryOffset.
This method can also be used to copy or extract one or more pages from a TIFF file and copy them without recompression to another TIFF file. Whenever you save an image containing a region as a TIFF file format, the region is also saved. Note, however, that the ability to save a region inside a TIFF file must be unlocked. This requires a Document Imaging or Document Imaging toolkit.
import java.io.*;
import java.net.*;
import java.nio.file.Paths;
import java.util.*;
import java.time.Instant;
import java.time.Duration;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.codecs.RasterCodecs.FeedCallbackThunk;
import leadtools.drawing.internal.*;
import leadtools.imageprocessing.*;
import leadtools.imageprocessing.color.ChangeIntensityCommand;
import leadtools.svg.*;
public void cmykPlanesExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
ILeadStream cmykTifFile = LeadStreamFactory.create(combine(LEAD_VARS_IMAGES_DIR, "cmykTifFile.tif"));
ILeadStream destFileName = LeadStreamFactory.create(combine(LEAD_VARS_IMAGES_DIR, "CmykPlanesTif.tif"));
RasterCodecs codecs = new RasterCodecs();
// Load the CMYK Planes of this image
RasterImage cmykImage = codecs.loadCmykPlanes(cmykTifFile, 8, 1);
System.out.printf("CMYK planes loaded into an image with %s pages", cmykImage.getPageCount());
assertTrue(cmykImage.getPageCount() == 4);
// The load has succeeded. Increase the brightness of the K (black) plane by 50%
// Note that this will DARKEN the image, because we increased the amount of
// black!
System.out.printf("Changing the intensity of the K plane (the 4th page)");
ChangeIntensityCommand command = new ChangeIntensityCommand();
command.setBrightness(500);
cmykImage.setPage(4);
command.run(cmykImage);
cmykImage.setPage(1);
System.out.println("Saving the image to the destination file");
codecs.saveCmykPlanes(cmykImage, destFileName, RasterImageFormat.TIFLZW_CMYK, 8, 1, CodecsSavePageMode.OVERWRITE);
cmykImage.dispose();
// Clean up
codecs.dispose();
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
void CmykPlanesExample(string cmykTifFile)
{
RasterCodecs codecs = new RasterCodecs();
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "CmykPlanesTif.tif");
// Load the CMYK Planes of this image
RasterImage cmykImage = codecs.LoadCmykPlanes(cmykTifFile, 8, 1);
Debug.WriteLine("CMYK planes loaded into an image with {0} pages", cmykImage.PageCount);
Debug.Assert(cmykImage.PageCount == 4);
// The load has succeeded. Increase the brightness of the K (black) plane by 50%
// Note that this will DARKEN the image, because we increased the amount of black!
Debug.WriteLine("Changing the intensity of the K plane (the 4th page)");
ChangeIntensityCommand command = new ChangeIntensityCommand();
command.Brightness = 500;
cmykImage.Page = 4;
command.Run(cmykImage);
cmykImage.Page = 1;
Debug.WriteLine("Saving the image to the destination file");
codecs.SaveCmykPlanes(cmykImage, destFileName, RasterImageFormat.TifLzwCmyk, 8, 1, CodecsSavePageMode.Overwrite);
cmykImage.Dispose();
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document