- srcFileName
- A System.String containing the name of the file being compacted. All the pages will be read from this file.
- destFileName
- A System.String containing the name of the file in which all the pages will be written.
- pages
- Value that represents the number of pages to copy. Use 0 to copy all the pages. If pages is > 0, only pages will be copied to destFileName.
Visual Basic (Declaration) | |
---|---|
Overloads Public Sub CompactFile( _ ByVal srcFileName As String, _ ByVal destFileName As String, _ ByVal pages As Integer _ ) |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As RasterCodecs Dim srcFileName As String Dim destFileName As String Dim pages As Integer instance.CompactFile(srcFileName, destFileName, pages) |
C# | |
---|---|
public void CompactFile( string srcFileName, string destFileName, int pages ) |
C++/CLI | |
---|---|
public: void CompactFile( String^ srcFileName, String^ destFileName, int pages ) |
Parameters
- srcFileName
- A System.String containing the name of the file being compacted. All the pages will be read from this file.
- destFileName
- A System.String containing the name of the file in which all the pages will be written.
- pages
- Value that represents the number of pages to copy. Use 0 to copy all the pages. If pages is > 0, only pages will be copied to destFileName.
Visual Basic | Copy Code |
---|---|
Public Sub CompactFileExample() Dim codecs As RasterCodecs = New RasterCodecs() Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "CompactFile1_Src.tif") Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "CompactFile1_Dest.tif") ' Create a RasterImage with 4 pages containing text showing the page number Dim image As RasterImage = Nothing Const pageCount As Integer = 4 Using f As New System.Drawing.Font("Arial", 36, System.Drawing.FontStyle.Bold) Using btmp As New System.Drawing.Bitmap(320, 200) Using sf As New System.Drawing.StringFormat() Dim rc As New System.Drawing.Rectangle(0, 0, btmp.Width, btmp.Height) sf.Alignment = System.Drawing.StringAlignment.Center sf.LineAlignment = System.Drawing.StringAlignment.Center For i As Integer = 1 To pageCount ' Create a GDI+ bitmap with the text Dim text As String = "Page " + i.ToString() Using g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(btmp) g.FillRectangle(System.Drawing.Brushes.White, rc) g.DrawString(text, f, System.Drawing.Brushes.Black, rc, sf) End Using Dim tempImage As RasterImage = RasterImageConverter.ConvertFromImage(btmp, ConvertFromImageOptions.None) If image Is Nothing Then image = tempImage Else image.AddPage(tempImage) End If Next End Using End Using End Using ' Save all the pages to the file ' The file should have 4 pages now: 1, 2, 3, 4 codecs.Save(image, srcFileName, RasterImageFormat.Tif, 1, 1, pageCount, 1, CodecsSavePageMode.Overwrite) image.Dispose() ' All the pages in the source TIFF file. This will create the destination file codecs.CompactFile(srcFileName, destFileName, 0) ' Compact the source file again and append all the pages to the existing destination file Dim pagesToAdd As Integer = 0 ' 0 means all pages Dim srcStartPage As Integer = 1 Dim destStartPage As Integer = 5 ' insert at the end codecs.CompactFile(srcFileName, destFileName, pagesToAdd, srcStartPage, False, 0, destStartPage, False, 0, CodecsSavePageMode.Insert, False, False) ' Clean up codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class |
C# | Copy Code |
---|---|
public void CompactFileExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName =Path.Combine(LEAD_VARS.ImagesDir, "CompactFile1_Src.tif"); string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "CompactFile1_Dest.tif"); // Create a RasterImage with 4 pages containing text showing the page number RasterImage image = null; const int pageCount = 4; using(System.Drawing.Font f = new System.Drawing.Font("Arial", 36, System.Drawing.FontStyle.Bold)) using(System.Drawing.Bitmap btmp = new System.Drawing.Bitmap(320, 200)) using(System.Drawing.StringFormat sf = new System.Drawing.StringFormat()) { System.Drawing.Rectangle rc = new System.Drawing.Rectangle(0, 0, btmp.Width, btmp.Height); sf.Alignment = System.Drawing.StringAlignment.Center; sf.LineAlignment = System.Drawing.StringAlignment.Center; for(int i = 1; i <= pageCount; i++) { // Create a GDI+ bitmap with the text string text = "Page " + i; using(System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(btmp)) { g.FillRectangle(System.Drawing.Brushes.White, rc); g.DrawString(text, f, System.Drawing.Brushes.Black, rc, sf); } RasterImage tempImage = Leadtools.Drawing.RasterImageConverter.ConvertFromImage(btmp, Leadtools.Drawing.ConvertFromImageOptions.None); if(image == null) image = tempImage; else image.AddPage(tempImage); } } // Save all the pages to the file // The file should have 4 pages now: 1, 2, 3, 4 codecs.Save(image, srcFileName, RasterImageFormat.Tif, 1, 1, pageCount, 1, CodecsSavePageMode.Overwrite); image.Dispose(); // All the pages in the source TIFF file. This will create the destination file codecs.CompactFile(srcFileName, destFileName, 0); // Compact the source file again and append all the pages to the existing destination file int pagesToAdd = 0; // 0 means all pages int srcStartPage = 1; int destStartPage = 5; // insert at the end codecs.CompactFile( srcFileName, destFileName, pagesToAdd, srcStartPage, false, 0, destStartPage, false, 0, CodecsSavePageMode.Insert, false, false); // Clean up codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; } |
SilverlightCSharp | Copy Code |
---|---|
public void CompactFileExample(Stream dstStream, int width, int height, int pageCount) { // Create a RasterImage with number of pages containing text showing the page number RasterImage image = null; // The white background canvas Canvas canvas = new Canvas(); canvas.Width = width; canvas.Height = height; canvas.Background = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255)); // The black text block TextBlock textBlock = new TextBlock(); textBlock.FontFamily = new FontFamily("Arial"); textBlock.FontSize = 36; textBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0)); canvas.Children.Add(textBlock); for (int i = 1; i <= pageCount; i++) { // The text we want on the page string text = "Page " + i; textBlock.Text = text; // Center the text double left = (canvas.Width - textBlock.ActualWidth) / 2; double top = (canvas.Height - textBlock.ActualHeight) / 2; textBlock.SetValue(Canvas.LeftProperty, left); textBlock.SetValue(Canvas.TopProperty, top); // Create a Writeable bitmap with the text WriteableBitmap wb = new WriteableBitmap(320, 200); wb.Render(canvas, null); wb.Invalidate(); // Convert it to a RasterImage RasterImage pageImage = RasterImageConverter.ConvertFromSource(wb, ConvertFromSourceOptions.None); // Add it as a page to our main raster image if (image == null) image = pageImage; else image.AddPage(pageImage); } RasterCodecs codecs = new RasterCodecs(); // Save all the pages to the file // The file should have 4 pages now: 1, 2, 3, 4 codecs.Save(image, dstStream, RasterImageFormat.Tif, 1, 1, pageCount, 1, CodecsSavePageMode.Overwrite); image.Dispose(); MemoryStream memoryStream = new MemoryStream((int)dstStream.Length); // All the pages in the source TIFF file. This will create the destination file codecs.CompactFile(dstStream, memoryStream, 0); // Compact the source file again and append all the pages to the existing destination file int pagesToAdd = 0; // 0 means all pages int srcStartPage = 1; int destStartPage = 5; // insert at the end codecs.CompactFile( dstStream, memoryStream, pagesToAdd, srcStartPage, false, 0, destStartPage, false, 0, CodecsSavePageMode.Insert, false, false); } |
SilverlightVB | Copy Code |
---|---|
Public Sub CompactFileExample(ByVal dstStream As Stream, ByVal width As Integer, ByVal height As Integer, ByVal pageCount As Integer) ' Create a RasterImage with number of pages containing text showing the page number Dim image As RasterImage = Nothing ' The white background canvas Dim canvas As Canvas = New Canvas() canvas.Width = width canvas.Height = height canvas.Background = New SolidColorBrush(Color.FromArgb(255, 255, 255, 255)) ' The black text block Dim textBlock As TextBlock = New TextBlock() textBlock.FontFamily = New FontFamily("Arial") textBlock.FontSize = 36 textBlock.Foreground = New SolidColorBrush(Color.FromArgb(255, 0, 0, 0)) canvas.Children.Add(textBlock) Dim i As Integer = 1 Do While i <= pageCount ' The text we want on the page Dim text As String = "Page " & i textBlock.Text = text ' Center the text Dim left As Double = (canvas.Width - textBlock.ActualWidth) / 2 Dim top As Double = (canvas.Height - textBlock.ActualHeight) / 2 textBlock.SetValue(Canvas.LeftProperty, left) textBlock.SetValue(Canvas.TopProperty, top) ' Create a Writeable bitmap with the text Dim wb As WriteableBitmap = New WriteableBitmap(320, 200) wb.Render(canvas, Nothing) wb.Invalidate() ' Convert it to a RasterImage Dim pageImage As RasterImage = RasterImageConverter.ConvertFromSource(wb, ConvertFromSourceOptions.None) ' Add it as a page to our main raster image If image Is Nothing Then image = pageImage Else image.AddPage(pageImage) End If i += 1 Loop Dim codecs As RasterCodecs = New RasterCodecs() ' Save all the pages to the file ' The file should have 4 pages now: 1, 2, 3, 4 codecs.Save(image, dstStream, RasterImageFormat.Tif, 1, 1, pageCount, 1, CodecsSavePageMode.Overwrite) image.Dispose() Dim memoryStream As MemoryStream = New MemoryStream(CInt(dstStream.Length)) ' All the pages in the source TIFF file. This will create the destination file codecs.CompactFile(dstStream, memoryStream, 0) ' Compact the source file again and append all the pages to the existing destination file Dim pagesToAdd As Integer = 0 ' 0 means all pages Dim srcStartPage As Integer = 1 Dim destStartPage As Integer = 5 ' insert at the end codecs.CompactFile(dstStream, memoryStream, pagesToAdd, srcStartPage, False, 0, destStartPage, False, 0, CodecsSavePageMode.Insert, False, False) End Sub |
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 Medical Imaging toolkit.
Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)