public static void SaveImage(AxPXV_Control axPXV_Control1, Workspace workspace_ob, string imageDest, IXC_ImageFileFormatIDs format) { IXC_PageFormat nFormat = IXC_PageFormat.PageFormat_8Indexed; IIXC_Inst inst = (IIXC_Inst)axPXV_Control1.Inst.GetExtension("IXC"); IIXC_Page page_ixc = inst.Page_CreateEmpty((uint)workspace_ob.field_ex.width, (uint)workspace_ob.field_ex.heigth, nFormat, 324345); page_ixc.PaletteSize = (uint)workspace_ob.keys.Count; for (int i = 0; i < workspace_ob.field_ex.width; i++) { for (int j = 0; j < workspace_ob.field_ex.heigth; j++) { Color clr = workspace_ob.field_ex.clr_fild[i][j]; uint clgr = (uint)((byte)(clr.R) | ((UInt16)((byte)(clr.G)) << 8)) | (((UInt32)(byte)(clr.B)) << 16); page_ixc.SetPixel(i, j, (uint)clgr, (uint)IXC_ColorFlags.Color_AddColor); } } page_ixc.ConvertToFormat(nFormat); IIXC_Image img = inst.CreateEmptyImage(); img.InsertPage(page_ixc); page_ixc.set_FmtInt((uint)IXC_FormatParametersIDS.FP_ID_FILTER, 0); page_ixc.set_FmtInt((uint)IXC_FormatParametersIDS.FP_ID_FORMAT, (uint)format); page_ixc.set_FmtInt((uint)IXC_FormatParametersIDS.FP_ID_ITYPE, 16); page_ixc.set_FmtInt((uint)IXC_FormatParametersIDS.FP_ID_COMP_LEVEL, 2); page_ixc.set_FmtInt((uint)IXC_FormatParametersIDS.FP_ID_COMP_TYPE, 0); img.Save(imageDest, IXC_CreationDisposition.CreationDisposition_Overwrite); }
static public int ConvertToPDF(Form1 Parent) { if (Parent.m_CurDoc == null) { Document.CreateNewDoc(Parent); } IIXC_Inst ixcInst = Parent.m_pxcInst.GetExtension("IXC"); IAUX_Inst auxInst = Parent.m_pxcInst.GetExtension("AUX"); IPXC_Pages pages = Parent.m_CurDoc.Pages; IPXC_Page Page = pages[0]; double nHeight = 0.0; double nWidth = 0.0; Page.GetDimension(out nWidth, out nHeight); IIXC_Image img = ixcInst.CreateEmptyImage(); img.Load(System.Environment.CurrentDirectory + "\\Images\\Editor_welcome.png"); IIXC_Page ixcPage = img.GetPage(0); IPXC_Image pxcImg = Parent.m_CurDoc.AddImageFromIXCPage(ixcPage); IPXC_ContentCreator CC = Parent.m_CurDoc.CreateContentCreator(); PXC_Rect rcImg = new PXC_Rect(); CC.SaveState(); { //Proportional resize rectangle calculation { double k1 = nWidth / nHeight; double k2 = (double)pxcImg.Width / pxcImg.Height; if (k1 >= k2) { rcImg.top = nHeight; rcImg.right = nWidth / 2.0 + rcImg.top * k2 / 2.0; rcImg.left = nWidth / 2.0 - rcImg.top * k2 / 2.0; } else { rcImg.right = nWidth; rcImg.top = nHeight / 2.0 + rcImg.right / k2 / 2.0; rcImg.bottom = nHeight / 2.0 - rcImg.right / k2 / 2.0; } } //Moving the image rectangle to the center PXC_Rect rcImage = new PXC_Rect(); rcImage.right = 1; rcImage.top = 1; PXC_Matrix matrix = Page.GetMatrix(PXC_BoxType.PBox_PageBox); matrix = auxInst.MathHelper.Matrix_RectToRect(ref rcImage, ref rcImg); CC.ConcatCS(ref matrix); CC.PlaceImage(pxcImg); } CC.RestoreState(); Page.PlaceContent(CC.Detach()); Marshal.ReleaseComObject(Page); Marshal.ReleaseComObject(pages); return((int)Form1.eFormUpdateFlags.efuf_All); }
public static void OpenImage(AxPXV_Control axPXV_Control1, out Bitmap btm, string imgPath) { btm = null; try { IIXC_Inst inst = (IIXC_Inst)axPXV_Control1.Inst.GetExtension("IXC"); //Create new instance IIXC_Image img_for_open = inst.CreateEmptyImage(); //Crete new empty image for open file img_for_open.Load(imgPath); //Load image from it path IIXC_Page page_ixc = img_for_open.GetPage(0); //Create new page from image page_ixc.ConvertToFormat(IXC_PageFormat.PageFormat_8Indexed); btm = new Bitmap((int)page_ixc.Width, (int)page_ixc.Height); //Converting by pixels page to C# bitmap for (int i = 0; i < page_ixc.Width; i++) { for (int j = 0; j < page_ixc.Height; j++) { int color = (int)page_ixc.GetPixel(i, j); Color clr = ColorTranslator.FromWin32(color); btm.SetPixel(i, j, clr); } } } catch { } }
static public void ConvertToImage(Form1 Parent) { if (Parent.m_CurDoc == null) { Document.OpenDocFromStringPath(Parent); } IIXC_Inst ixcInst = Parent.m_pxcInst.GetExtension("IXC"); IAUX_Inst auxInst = Parent.m_pxcInst.GetExtension("AUX"); IPXC_Pages pages = Parent.m_CurDoc.Pages; IPXC_Page Page = pages[Parent.CurrentPage]; double nHeight = 0.0; double nWidth = 0.0; Page.GetDimension(out nWidth, out nHeight); uint cx = (uint)(nWidth * 150 / 72.0); uint cy = (uint)(nHeight * 150 / 72.0); IIXC_Page ixcPage = ixcInst.Page_CreateEmpty(cx, cy, IXC_PageFormat.PageFormat_8ARGB, 0); IPXC_PageRenderParams param = Parent.m_pxcInst.CreateRenderParams(); if (param != null) { param.RenderFlags |= ((uint)PXC_RenderFlags.RF_SmoothImages | (uint)PXC_RenderFlags.RF_SmoothLineArts); param.SetColor(PXC_RenderColor.RC_PageColor1, 255, 255, 255, 0); param.TextSmoothMode |= PXC_TextSmoothMode.TSM_Antialias; } tagRECT rc = new tagRECT(); rc.right = (int)cx; rc.bottom = (int)cy; PXC_Matrix matrix = Page.GetMatrix(PXC_BoxType.PBox_PageBox); matrix = auxInst.MathHelper.Matrix_Scale(ref matrix, cx / nWidth, -cy / nHeight); matrix = auxInst.MathHelper.Matrix_Translate(ref matrix, 0, cy); Page.DrawToIXCPage(ixcPage, ref rc, ref matrix, param); ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_XDPI] = 150; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_YDPI] = 150; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_INTERLACE] = 1; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_FILTER] = 5; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_COMP_LEVEL] = 5; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_FORMAT] = (uint)IXC_ImageFileFormatIDs.FMT_PNG_ID; IIXC_Image ixcImg = ixcInst.CreateEmptyImage(); ixcImg.InsertPage(ixcPage, 0); string sPath = Path.GetTempFileName(); sPath = sPath.Replace(".tmp", ".png"); ixcImg.Save(sPath, IXC_CreationDisposition.CreationDisposition_Overwrite); Process.Start(sPath); ixcImg.RemovePageByIndex(0); ixcPage = ixcInst.Page_CreateEmpty(cx, cy, IXC_PageFormat.PageFormat_8Gray, 0); if (param != null) { param.SetColor(PXC_RenderColor.RC_PageColor1, 255, 255, 255, 255); } Page.DrawToIXCPage(ixcPage, ref rc, ref matrix, param); ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_XDPI] = 150; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_YDPI] = 150; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_YSUBSAMPLING] = 20; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_FORMAT] = (uint)IXC_ImageFileFormatIDs.FMT_JPEG_ID; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_JPEG_QUALITY] = 100; ixcImg.InsertPage(ixcPage, 0); sPath = sPath.Replace(".png", ".jpg"); ixcImg.Save(sPath, IXC_CreationDisposition.CreationDisposition_Overwrite); Process.Start(sPath); Marshal.ReleaseComObject(Page); ixcImg.RemovePageByIndex(0); ixcPage = ixcInst.Page_CreateEmpty(cx, cy, IXC_PageFormat.PageFormat_8RGB, 0); for (int i = 0; i < pages.Count; i++) { Page = pages[(uint)i]; Page.DrawToIXCPage(ixcPage, ref rc, ref matrix, param); ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_XDPI] = 150; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_YDPI] = 150; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_ITYPE] = 1; ixcPage.FmtInt[(uint)IXC_FormatParametersIDS.FP_ID_FORMAT] = (uint)IXC_ImageFileFormatIDs.FMT_TIFF_ID; ixcImg.InsertPage(ixcPage); ixcPage = ixcInst.Page_CreateEmpty(cx, cy, IXC_PageFormat.PageFormat_8Gray, 0); Marshal.ReleaseComObject(Page); } sPath = sPath.Replace(".jpg", ".tiff"); ixcImg.Save(sPath, IXC_CreationDisposition.CreationDisposition_Overwrite); Process.Start(sPath); Marshal.ReleaseComObject(pages); }