←Select platform

ReadStamp(Stream,int) Method

Summary

Reads a thumbnail image stored in an image stream.

Syntax

C#
Objective-C
C++/CLI
Java
Python
public RasterImage ReadStamp( 
   Stream stream, 
   int pageNumber 
) 
- (nullable LTRasterImage *)readStampFromStream:(LTLeadStream *)stream  
                                     pageNumber:(NSInteger)pageNumber  
                                          error:(NSError **)error 
public RasterImage readStamp(ILeadStream stream, int pageNumber) 
public: 
RasterImage^ ReadStamp(  
   Stream^ stream, 
   int pageNumber 
)  
def ReadStamp(self,stream,pageNumber): 

Parameters

stream
A Stream containing the image data which contains the stamp image to load.

pageNumber
1-based index of the page from which the stamp image should be loaded.

Return Value

The RasterImage object that this method loads.

Remarks

Only EXIF, CMP, JPEG, FlashPix, HEIF/HEIC, and PNG formats support stamps. However, not all files of these formats contain stamps. To create a thumbnail image from any file, use ReadThumbnail.

Example

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
 
public void StampExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithCustomStamp.cmp"); 
   string stampFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Stamp.bmp"); 
 
   // Load the source file name 
   RasterImage image = codecs.Load(srcFileName); 
 
   // Save as the destination image 
   codecs.Save(image, destFileName, RasterImageFormat.Cmp, 24); 
 
   // Resize the image to fit into 128 by 128 pixels keeping the aspect ratio 
   LeadRect rc = new LeadRect(0, 0, 128, 128); 
   rc = RasterImage.CalculatePaintModeRectangle( 
      image.ImageWidth, 
      image.ImageHeight, 
      rc, 
      RasterPaintSizeMode.FitAlways, 
      RasterPaintAlignMode.Near, 
      RasterPaintAlignMode.Near); 
 
   SizeCommand command = new SizeCommand(); 
   command.Width = rc.Width; 
   command.Height = rc.Height; 
   command.Flags = RasterSizeFlags.None; 
   command.Run(image); 
 
   // Add the word "Stamp" on the image at the middle 
   string message = "Stamp"; 
 
   using (Leadtools.Drawing.RasterGraphics rg = Leadtools.Drawing.RasterImagePainter.CreateGraphics(image)) 
   { 
      using (System.Drawing.StringFormat sf = new System.Drawing.StringFormat()) 
      { 
         sf.Alignment = System.Drawing.StringAlignment.Center; 
         sf.LineAlignment = System.Drawing.StringAlignment.Center; 
         using (System.Drawing.Font f = new System.Drawing.Font("Arial", 20, System.Drawing.FontStyle.Bold)) 
         { 
            System.Drawing.Rectangle rcDraw = new System.Drawing.Rectangle(rc.X, rc.Y, rc.Width, rc.Height); 
            rg.Graphics.DrawString(message, f, System.Drawing.Brushes.Yellow, rcDraw, sf); 
         } 
      } 
   } 
 
   // Now set this image as the stamp for this file 
   codecs.SaveStamp(image, destFileName, 1, 1, 1, CodecsSavePageMode.Overwrite); 
   image.Dispose(); 
 
   // Load the stamp from the file and save it into another file 
   image = codecs.ReadStamp(destFileName, 1); 
   codecs.Save(image, stampFileName, RasterImageFormat.Bmp, 24); 
   image.Dispose(); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
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 stampExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterCodecs codecs = new RasterCodecs(); 
 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp"); 
   String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Image2.cmp"); 
   String stampFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_LoadFileTile2.bmp"); 
 
   // Load the source file name 
   RasterImage image = codecs.load(srcFileName); 
 
   // Save as the destination image 
   codecs.save(image, destFileName, RasterImageFormat.CMP, 24); 
 
   // Resize the image to fit into 128 by 128 pixels keeping the aspect ratio 
   LeadRect rc = new LeadRect(0, 0, 128, 128); 
   rc = RasterImage.calculatePaintModeRectangle(image.getImageWidth(), image.getImageHeight(), rc, 
         RasterPaintSizeMode.FIT_ALWAYS, RasterPaintAlignMode.NEAR, RasterPaintAlignMode.NEAR); 
 
   SizeCommand command = new SizeCommand(); 
   command.setWidth(rc.getWidth()); 
   command.setHeight(rc.getHeight()); 
   command.setFlags(RasterSizeFlags.NONE.getValue()); 
   command.run(image); 
 
   // Add the word "Stamp" on the image at the middle 
   String message = "Stamp"; 
 
   ILeadStream ls = LeadStreamFactory.create(destFileName); 
 
   DrwEngine drwEngine = new DrwEngine(DrwEngineType.OPEN_GL, image); 
   DrwStringFormat sf = drwEngine.newStringFormat( 
         DrwAlignment.CENTER, 
         DrwAlignment.CENTER, 
         DrwStringFormatFlags.NONE.getValue()); 
   DrwFont f = drwEngine.newFont("Arial", 20, DrwFontStyle.BOLD.getValue()); 
 
   drwEngine.drawString(message, f, (DrwBrush) drwEngine.newSolidBrush(RasterColor.BLACK), rc.toLeadRectD(), sf); 
 
   // Now set this image as the stamp for this file 
   codecs.saveStamp(image, ls, 1, 1, 1, CodecsSavePageMode.OVERWRITE); 
   image.dispose(); 
 
   // Load the stamp from the file and save it into another file 
   image = codecs.readStamp(ls, 1); 
 
   codecs.save(image, stampFileName, RasterImageFormat.BMP, 24); 
   assertTrue("File unsuccessfully saved to" + stampFileName, (new File(stampFileName)).exists()); 
 
   image.dispose(); 
 
   // Clean up 
   codecs.dispose(); 
} 

Requirements

Target Platforms

See Also

RasterCodecs Class

RasterCodecs Members

Overload List

Implementing Extended FlashPix Support

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.