From 1b6973d757f7ebe7179924504c5a39e0ef5753be Mon Sep 17 00:00:00 2001 From: Ernie Salazar Date: Tue, 25 Jun 2019 17:43:48 -0400 Subject: [PATCH 1/2] more image resources in EPPlusTest --- EPPlusTest/EPPlusTest.csproj | 4 ++++ EPPlusTest/Resources/BitmapImage.bmp | Bin 0 -> 19978 bytes EPPlusTest/Resources/BitmapImage.png | Bin 0 -> 5743 bytes EPPlusTest/Resources/BitmapImage.tif | Bin 0 -> 20708 bytes EPPlusTest/Resources/Vector Drawing.emf | Bin 0 -> 3980 bytes EPPlusTest/TestBase.cs | 2 +- 6 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 EPPlusTest/Resources/BitmapImage.bmp create mode 100644 EPPlusTest/Resources/BitmapImage.png create mode 100644 EPPlusTest/Resources/BitmapImage.tif create mode 100644 EPPlusTest/Resources/Vector Drawing.emf diff --git a/EPPlusTest/EPPlusTest.csproj b/EPPlusTest/EPPlusTest.csproj index 6248deafe..a7d4ffe54 100644 --- a/EPPlusTest/EPPlusTest.csproj +++ b/EPPlusTest/EPPlusTest.csproj @@ -272,7 +272,11 @@ + + + + diff --git a/EPPlusTest/Resources/BitmapImage.bmp b/EPPlusTest/Resources/BitmapImage.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b6e8129ce46f5178403fe84580708b5df4c28bbe GIT binary patch literal 19978 zcmeI3cUaX&*2j+pMG;Uscm?TPq$o%e0U?MKMLbrtbiV|Zi zS=?8_6*n3Z5;to}Tw~otUECEF7Tcr5mfZI{zgvHo3y2XP{&?qk5~lsmeD0Yu<;;u$ z(}so<7u*LD*&$Yp|JLEZex%OjpAX^wi2v7566gM^)1dxDgZmAnA!N=3#a3{1inN0OeNn@BljnH-@ zTchD5&=HcQ{wT6Fgv{Y?G+cWk35^WNTp#Ug`O{F%5Hc983(t_Rr}o6|Uf0cmK>Aag?}vNm)iBi%`4Vc<&k#gt$vh*jRt~+UK%_TjZ7#cPrnVd$AAxmQ)axt?acXI(b3&xVM zZVVafN6;973%;`_YooVFS0|aw3`5Dz#D_dAMv;%DF*yi4NMH~Nz04v{b4xNeh#-Rz zX<$nxPfJs>G72RF{W$U(4c!h;Crgtc($RUF>`lGN&&r$xhVkS&dOSId@~25Q0ulVLbfSsYHl(M&fX0rVNcuYOgVUR=M@EyW!2+6K=|;ZRj`WtT zHR zGK(M`{XDW3Bva5B3liurgPs;rki8wbTTUkXQOOiwH;#-9@@VQ9D>5;9j|}uy(*$cj zas;?g2r1UkgHV;`Pl~JH~5pU5V|)mq)2BWO&K$R!W>=5!zPjf z#`sW>qZ>_icBDurXY#U+At#HuG}7n;nrItAlZC^v zzsn(zX1X{~sFM$ck98v>lg*GDKr_d=&|71sl7;Ci5*TfxNp`UmXdg*a974&E%GSDIhYdN?aALEnjEc`l84p16y@qgqeuObCJATL1exF$C(uCK9(FTms7ZlKNy!#l7|Bs3o0qhIh-ci&!srm zi8RGIg8UqkD9+8DrjMIKGhO{C$=!vLJsn9T60!gKM)>vDzQMsLe(gIjKKeKN&&bRzDp;VHrk0kL-e(ZEpav9Uhv0W(Zgn8C2nl?27IN9P}%S4_Wj97hlR2Mipnp`mN);2D{?dNcH*`0+E? zE~l55X89iBzyU=WFBKP`feaX^&Wr_WiOk%*`^ahjr)(TOzT48$#LwhCYppfQ-NKj}%e>HV=ZCzu5gD1KOrrV*3v!~8AUT8RYutS0BjCr{mHHvYBY;5vRu!Rms7 zg5^tCX6l^mdGn;D0Sg$+#ue|UCeIHIk4b?Rg59KrB2h3DrKA@r3Wku_ScFgu%w@9* zmgcB_$#}dU{;))YMq8c)2(` zOIfnltk27Ocf*pmQzCgSi(tyU3>iv)^blva4sK8jSPFRcxI}pRvZB(`%C%V`yfThG zAtfaSFhR*P0+?dFyu1P=dfC2aeOXCSMgH=oystVWq$rr=I22PM(+YZW(P|Yee$hFM zr7&x{J5LgWi3E&TGrxys!logFarW}j_D^?|9je+{y@&TrhlC7;B$FIE2wLexEh2A@ zrK+$ne!P+>)=eqUOjOeJxOZSP*$WoTn+I#bFaparCk{2%)_tz@4L>PEk=m^dGh4A* zR`aWJDet6rp_kIiRT=ReN-=RQTAH#XJtr$~@gLsLhS6d?v+%$B{(SQ9SDG%K>+p#} zhKz*zbH<`;%#9%S6IEIZJ`K%SRfSMlq##Bf#n4_}ylmCSoBp`(e?G#TTmF{=2fix* zVc(6DZOs>&F3Kx*h{;jF!i{F3kn5j>xhjo?6Hr)H+1S`vQ`$kAEMr$q!F_rp(L z9l*MH{`}3Kez^azwY|Bei+#obTmVP|=37kt&!C_varydUXD#=+3pkb6m#=D_EG0=UPTu%wKTUY2w~AgEC51d4Ry8tGQD63 zv5lNSJlS?f0vXNCEnRNwp0qT#-F|rg2Pg(8|3nwHHMcx{+N|U~Bql@#yO}~Q3Mj0D zw2f`Bc}l?O>D*9czX}TPlI1Q~T5n&w!+Hs(D`9DFZn!joUiz~Jl@vaHOtfH z=5`6p)vI?HOFJ@d-;hhdhz<616B;wMNJbI29%9eWHgWQb-NstGF&J2PJA=7#|IVE| z_pd#?-PYFLcI)Ba?tCN`?daj}=?N6{5Y!?b&=Re9V&Bwl`-&CN|6LldsJ)%j%)f73 z`|q72|Ia4OPPw@433wCp`G1k_=JjcO^Cw?J(RmFy0Cf*$j`b5%A z*KRy~c>8v1YwO8x{stE8!c&t&LZblVAT)zoq$q5|Vk~@_ww3F&ws+%Cx3x9HT-#c2 z-3AFmY5nHUpKix?GkZGW zTU+ailiz&0CVRz-?Cd|RFI$k2G%+{!-r{Vj!+?$c}~HeDhggP>&nHiPo4Vu+_{U5 z4F^AYCpj=MaOUsI@_>SnmKNmXWMVSPWR!um@;08Wn`}Q3{E7oh74E^t!*vL?@On$u z%?_I66cm)UawQ`vS(z3$X|k)Ug|mf~Q&32JPJaH@t#a>)?ftQgD|oxA#P=j`$NtKS zUDaZkl9h2mW9{wTr)L$eT?>?zag%}K4A(Mna@_pFqKfML;^MbsBK*++=WFo~0eaG` zs=Dx73v)J9SAUMJ1(f8;fvzsjE-q7NBix36=S>%=hOko;@okJ--^7sjaD6n>EYb$J;L|Iw>O~ zYkt~npfIht%t)TSvZS)Abms>jGfcuF$P}~da4lF?EsXZ{@b~rg4xJtn1Y>c9*)nU+DlDulEv+hC zo0W!;wW?^@uIlP)d0XAZTmoV-Qq{vK{1Q-vWisdvfrSg!wgKUteisLN)oeRj;XErU|E!}hnbzDp*dr5 zwi;tUenM1K`i2b^6-+OAWt+-A*$+pssR^rw%2ripx&#Eo{ysS^V?%L=a>B|xWGEEl z8Z7 zu}q#E7ZM+}u6mtfcfMOBczus1mmr zEJKDFj1o`o#e4SDpFMTz6j*Yi{Ves=wT2j3Pn;ANmz9x|zje!>5RM)d%fEE#`t|2H z<9~AZX^-?Gnihsmnjas9i3uwQ=W|KDV%ABTIwnp*^D~y^1Eu~9U=A}DZ%ZvLEqz1# ziD_wT3vp(4^a#S~(_e5bFT~*iyK(4n44^_A3Rw%nQfJ1+C&fg-)8U*hxi88(NoNeE z4y-eK>W|f*Idke%U2SPmlD8xJNZ;0HdSPMJ;kq;5{p0j$Tngb@=$Smcc=6yBU}9&) z%?ibi-i`A`nFA=%3|KUECdQ=|mR11eSbaULw^qzDQg5Us4*ho4)|~~)y?giA9ilkg zyZ6g49MaG1UP$3rzeIEaIw{1*&x5%arV>|248vILL*{2y?X0Um_St90q$~@Qye;j_ zJi_yLf#k)1(C|GOiHwNx;Fd}Sz`O-v0bVNdS=O8>ffL=m$9Xsig{I5}l%5#$?lv5^Ly-dT|AOX4$0p|i1uQNdOIS|q)WAvh zwvKi}p-^B7*BIUo^Nss+wS6**N)Ok4UjNx=+?d7kh?zGhJtksl!QOAbV<69-{laIE zrG9zVu|a^~06W0TxnmJ>0s>qDo$N)fGFj z3e=QVY$#s7^qP+kXygKP3XDr38R%6X=E$vJhj6fIOvDyHsnD7l1 zyMV%2mV>3D2CG1A#jZU^kDtDG4=VYkGo>h8hf8IN|GFUXb7Uzi3oOM}qwEd!?U-VO z0s-qLiKpWq5rakXa|ugveg*6W0gA%lQPu)4EtB7a$gok^7g$)B7#Qh~WGrF>*4E}k z1mk7^lRu_8PA|(ba6odd_SC5}|LJJ3+?z%Ys0ZyUR247978X#GG{xF|%Mu!(h0L=DBm1uAjy5;dhQiCQuZl_b7@Lhb_exfH5$#wKNmoBCs~4BvEx22 zz~RFYF>Waew(MmjVA;DD)7@DPycT6=$kDfX6T$x3s^qypjNu(?m@U?!oZY>0G3-0NE;SU3Xim)#^ zejF&AVi*fhEuqV%diL{9U!@m=kuT`AQG>)e4O%MkOqYS9 zc47;~&ORz?8@W@&6Wtt^C`#`l&av>yF)rB1z?|_5hl2Sd9Omtv31v7nQ%jh0MwM|SVtwgoE!oUr=3+P@wuDap!V zUUO;Xq5WUt`1=nZDhR z%;Cm{{rf*IDT2jp*jag~Y{wrz-Iu*U)&zIgs`xrbR?_1Lw83CFn(w|ivIWZ`Lc!|I zAQ20@)OcwB{(~i}mgVPfC@TE8Y&}r2!vZ8Ny~guOJpE&y3>VJSZ(X_w2ceO3al2ix zP5!ek|NZX=8)|k|=P&!9aNVX)_ifKzF)u*8na6D_&Q4#CT0{~S?2%5@RWFHP0Jyiz zEZ8DP!FBfKD-Df@tE)E@t<77%X8T9Ex%0xrduWMT6f6IRIP~%y56f_lRGJgriJa!< zD_0uN)$OV%TD$4P?RasqF?Ycfu5NHb!rVlqmqMKgd8zCN*U#ZC*P)WESw5ZA$4v>& zRk#DV9c$R@kMfP#v0Pm|Qjr~(bnpnQLz{G)yR%C9f=&WzO5)G5j?9S4J_$IqWY zGx8@McoFmcS3msi^|h`fX$o$sln)~~6byQHl!7M(vM=!PgRy)m%XrNZuYhSdjo=Fv zv;2yIcAY)7kQZ{VEpGJeY*7Anw=oyS62`A4XL)|NMFB;GM<{r0(fX8M{k5f>1MrSc zNt%R(J)GyCN&a+aS(BFr!{Mc}a#Q1INMml{?fR?Z?4VTNI^4!L*y z>=Fbhw{HJi#YerAC1v5nvn2^@H5=Sm5x93<53lu7!yU!)P|!*2U&C-L=&yD>F}rsE zPREaWDM!L0la8fYx`|hw>zn|x#Y;rogzS$cmRz(1FL{NI=RXT-g3Fx(TPzQe-) Nt@q1#sK0Gg{~x=G;GX~h literal 0 HcmV?d00001 diff --git a/EPPlusTest/Resources/BitmapImage.png b/EPPlusTest/Resources/BitmapImage.png new file mode 100644 index 0000000000000000000000000000000000000000..248456639143fd4ec1e332523cb3ae8a0a220639 GIT binary patch literal 5743 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 literal 0 HcmV?d00001 diff --git a/EPPlusTest/Resources/BitmapImage.tif b/EPPlusTest/Resources/BitmapImage.tif new file mode 100644 index 0000000000000000000000000000000000000000..dec9713a69c4f3d8486e1e6db22334c1a8940a3c GIT binary patch literal 20708 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%0APGR4w>^j2yp&F zcncx%OP%&?tKDu#dlO*D+=F|dSl$uJndryup*T6B>Z!IPdJ>L<$caTa&N`tKjG3h+?Ti~vsak8 zzLjBxwnK55XI2A@17iU1LaOq3xz|F#ypM(QpF#tW z$&-`sjGBDWd4xRBc}33raQcI^*ZE*E^Aq`Iv`!%G$`>+z0dkxBI@rL{pKn?=;toJFr=^ zB)LE(zPT;5IVb7gzJIx9Q}^uqWLaE`zI)F9MEw8E+@#|F!Sc|b3UoPk%u%j`IZHy# z&^57Jx9p!o{2r`}E6n@*Avqma-eUhQg9I`8?AM@|Yv4Y-Dt<=zY)BSBVn5|S0acAh Ar2qf` literal 0 HcmV?d00001 diff --git a/EPPlusTest/TestBase.cs b/EPPlusTest/TestBase.cs index 3e062cfbb..428b3fc98 100644 --- a/EPPlusTest/TestBase.cs +++ b/EPPlusTest/TestBase.cs @@ -30,7 +30,7 @@ public void InitBase() var asm = Assembly.GetExecutingAssembly(); var validExtensions = new[] { - ".gif", ".wmf" + ".gif", ".wmf", ".jpg", "emf", "png", "tif", "bmp" }; foreach (var name in asm.GetManifestResourceNames()) From e6ab1023603584aaf41a07f96993e661f3b0e564 Mon Sep 17 00:00:00 2001 From: Ernie Salazar Date: Tue, 25 Jun 2019 17:45:01 -0400 Subject: [PATCH 2/2] ExcelPicture retraverses stream instead of convert --- EPPlus/Drawing/ExcelPicture.cs | 26 +++++----- EPPlusTest/DrawingTest.cs | 86 +++++++++++++++++++++++++++++++++- EPPlusTest/EPPlusTest.csproj | 1 + 3 files changed, 98 insertions(+), 15 deletions(-) diff --git a/EPPlus/Drawing/ExcelPicture.cs b/EPPlus/Drawing/ExcelPicture.cs index e413ae025..d3a0ee41d 100644 --- a/EPPlus/Drawing/ExcelPicture.cs +++ b/EPPlus/Drawing/ExcelPicture.cs @@ -38,6 +38,7 @@ using System.Drawing; using System.Drawing.Imaging; using System.Diagnostics; +using System.Linq; using OfficeOpenXml.Utils; using OfficeOpenXml.Compatibility; @@ -61,14 +62,15 @@ internal ExcelPicture(ExcelDrawings drawings, XmlNode node) : Part = drawings.Part.Package.GetPart(UriPic); FileInfo f = new FileInfo(UriPic.OriginalString); ContentType = GetContentType(f.Extension); - _image = Image.FromStream(Part.GetStream()); -#if (Core) - byte[] iby = ImageCompat.GetImageAsByteArray(_image); -#else - ImageConverter ic =new ImageConverter(); - var iby=(byte[])ic.ConvertTo(_image, typeof(byte[])); -#endif + //Re-traverse the stream to avoid Image.Save call which converts emf/wmf to png + var ms = Part.GetStream(); + _image = Image.FromStream(ms); + + var iby = new byte[ms.Length]; + ms.Position = 0; + ms.Read(iby, 0, iby.Length); + var ii = _drawings._package.LoadImage(iby, UriPic, Part); ImageHash = ii.Hash; @@ -128,12 +130,10 @@ internal ExcelPicture(ExcelDrawings drawings, XmlNode node, FileInfo imageFile, var imagestream = new FileStream(imageFile.FullName, FileMode.Open, FileAccess.Read); _image = Image.FromStream(imagestream); -#if (Core) - var img=ImageCompat.GetImageAsByteArray(_image); -#else - ImageConverter ic = new ImageConverter(); - var img = (byte[])ic.ConvertTo(_image, typeof(byte[])); -#endif + //Re-traverse the stream to avoid Image.Save call which converts emf/wmf to png + var img = new byte[imagestream.Length]; + imagestream.Position = 0; + imagestream.Read(img, 0, img.Length); imagestream.Close(); UriPic = GetNewUri(package, "/xl/media/{0}" + imageFile.Name); diff --git a/EPPlusTest/DrawingTest.cs b/EPPlusTest/DrawingTest.cs index f027c444e..3e715c1b3 100644 --- a/EPPlusTest/DrawingTest.cs +++ b/EPPlusTest/DrawingTest.cs @@ -8,8 +8,8 @@ using OfficeOpenXml.Drawing; using OfficeOpenXml.Drawing.Chart; using OfficeOpenXml.Style; -using System.Diagnostics; -using System.Reflection; +using System.Drawing.Imaging; +using System.IO.Compression; namespace EPPlusTest { @@ -977,5 +977,87 @@ public void DrawingWidthAdjust() // p.SaveAs(new FileInfo(@"c:\temp\colwidthAdjust.xlsx")); //} } + + #region ImageFormat Test + + [TestMethod] + public void AddPicture_Bmp_StoresFormat() + { + AddPicture_Assert("BitmapImage.bmp", ImageFormat.Bmp); + } + + [TestMethod] + public void AddPicture_Gif_StoresFormat() + { + AddPicture_Assert("BitmapImage.gif", ImageFormat.Gif); + } + + [TestMethod] + public void AddPicture_Png_StoresFormat() + { + AddPicture_Assert("BitmapImage.png", ImageFormat.Png); + } + + [TestMethod] + public void AddPicture_Tif_StoresFormat() + { + AddPicture_Assert("BitmapImage.tif", ImageFormat.Tiff); + } + + [TestMethod] + public void AddPicture_Jpg_StoresFormat() + { + AddPicture_Assert("Test1.jpg", ImageFormat.Jpeg); + } + + [TestMethod] + public void AddPicture_Emf_StoresFormat() + { + AddPicture_Assert("Vector Drawing.emf", ImageFormat.Emf); + } + + [TestMethod] + public void AddPicture_Wmf_StoresFormat() + { + AddPicture_Assert("Vector Drawing.wmf", ImageFormat.Wmf); + } + + public void AddPicture_Assert(string fileName, ImageFormat format) + { + using (var pck = new ExcelPackage()) + { + var workbook = pck.Workbook; + var ws = workbook.Worksheets.Add("Sheet1"); + + var pic = ws.Drawings.AddPicture("Pic4", new FileInfo(Path.Combine(_clipartPath, fileName))); + pic.From.Row = 0; + pic.From.Column = 0; + + pic.To.Row = 30; + pic.To.Column = 23; + + using (var zip = new ZipArchive(new MemoryStream(pck.GetAsByteArray()), ZipArchiveMode.Read)) + { + var found = false; + + foreach (var entry in zip.Entries) + { + if (entry.Name != $"1{fileName}") + continue; + + found = true; + var stream = entry.Open(); + var drawing = Image.FromStream(stream); + + Assert.AreEqual(format, drawing.RawFormat); + } + + Assert.IsTrue(found, "Image was not found in zip."); + } + } + + } + + #endregion } } diff --git a/EPPlusTest/EPPlusTest.csproj b/EPPlusTest/EPPlusTest.csproj index a7d4ffe54..98d67a88a 100644 --- a/EPPlusTest/EPPlusTest.csproj +++ b/EPPlusTest/EPPlusTest.csproj @@ -85,6 +85,7 @@ +