From bfe94bc5d05ee697f4fff4bbf1467910e59e62bb Mon Sep 17 00:00:00 2001 From: Gert Date: Tue, 27 Jan 2015 21:18:16 +0100 Subject: [PATCH] add option to show debug overlay on images --- system/assets/responsive-overlays/1x.png | Bin 0 -> 1237 bytes system/assets/responsive-overlays/2x.png | Bin 0 -> 1358 bytes system/assets/responsive-overlays/3x.png | Bin 0 -> 1381 bytes system/assets/responsive-overlays/unknown.png | Bin 0 -> 4578 bytes system/config/system.yaml | 3 ++ system/src/Grav/Common/Page/Medium.php | 30 ++++++++++++++++-- 6 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 system/assets/responsive-overlays/1x.png create mode 100644 system/assets/responsive-overlays/2x.png create mode 100644 system/assets/responsive-overlays/3x.png create mode 100644 system/assets/responsive-overlays/unknown.png diff --git a/system/assets/responsive-overlays/1x.png b/system/assets/responsive-overlays/1x.png new file mode 100644 index 0000000000000000000000000000000000000000..950bda815f3c4074a2f32974623c4dd04ec0b2f3 GIT binary patch literal 1237 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=3?wxlRx|@C=3*z$5DpHG+YkL8FfcG$2l#}z z{{R0UD1!&Iwzf7kHPzSG*VNQhR#ujkm6ev378Mm078d5@FEJ&+`oVS-o1Nw z@7}$0=g!TWH?Lj0cJ=DjD^{#nzI^$TB}*1BUc7MO!kIH?PMkQgzrVkyr>Co{OIur8 zQ&Uq-O-)HjNls2qN=iyXLPAVTOhiOPNJvOPK!Asb2WayB`}c3&ym|fl^{ZE}UcP+! z;>C++&YU@M;>6LTM-Lr31hf~ZjEjqllarH;jg5tc1*qlw_wQf7e*OIU^QTXr-oAbN z>eZ{4FJC@=`t8V03Ct{+(ifPkO0v7|Nqa5MkN3(a>QWe}Xi&D$;i?WLqoP*6??Ag=8E+YuT?IM8S*PtH>fo+woDfBzYw~2Rgt8MjKc*kqbeO<=j)1Qdy^kOjaa*I@$&OO z-Zy=m9Ccs1h2!UhyYt+QKG^Cn`6+Ssgkf7jmcS!7@dJ~l?K1jq*{KxEn0M;6pe5fN z(Bynr~O>pLO?agdZ63TL9qWgVDp-*hfntVhonbv3=ZNBm0mdAmg{i|62 zwQPE#aqc9Sy1`sWo%Y|t?pDW?O2w27*k&>2wI8btjLZ@#Zsk#W!eVf8@{f=gQ{*>% z*L@XX*($1;!GHT_&T*OArq8u+0?Sjm)zoLPx-FSob2R0J?87Z{9oL^My7lE#vU$hU z=WQ`Bv^F?9^3LF$ynToCw|=Ab(Z}ja^;!Nh&J*ZQ{kwth&c);m(@%dr^lmbW&p&6h zhkwf%u1&XY-@fxI<%08{F3bI^?zueWI6X`GLCpC-yCUpD7Rd{K5!Qbc_cKRpQ+efX znfG!nTAr)c?_MVIamO*G^~ZPBx88UweNAS4=2~<4H%!@e@=8CNj-?%Zz1N^G?(99U zHEp#W$D@D538u$+9ge8ndd;hG^Q59p9Rc|by5=*O_q{ObQDuty9bkX#>Gp|StlOsM z$?rG##<*d9i|?PSNw-Wc|7tQ3Z(1_F?u02jAOF(NbACRHmHx4Y*YryLvi%Z!Zsk~K S#|Z+{CxfS}pUXO@geCwJq(yH4 literal 0 HcmV?d00001 diff --git a/system/assets/responsive-overlays/2x.png b/system/assets/responsive-overlays/2x.png new file mode 100644 index 0000000000000000000000000000000000000000..69fc44ad2c3463a088e6b21a6bbdbcf74a863a46 GIT binary patch literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=3?wxlRx|@C=3*z$5DpHG+YkL8FfcIs2Ka=y z{{R0UD1!&Iwzf7mH#ami)YsS7)YMc~R+g2Om6nzk6&2;=R$+hlhoQ zg@%R(1qB5L2KxE=`TF{Ld3m|Hxj8#KJ2^So+S*!MTU%IIn3aX>zkmPU zy?b}>-o10@&aGRwZr;3k{rdH5*REZ?diBbcE0-@{zGTUg#fuj&T)1%N%$ZZBOqn=w zVt;>sPft%*SC_W7ww9KbrlzKvnwpZ5l7fPQoSdALl$3;ogqWC^h=_=gkdT0Y06#xJ z4-XH}uKV}z-@JMA`t|EquU@@;`SQh!7tfqIbK=B_qeqV(K71JH5}-0JE-qmBu(7eR zu&@BNeEs_M^XJbWK74rl_U-G}uV21=`Sj`2$B!Qaje;luhTiYrzkmMx`ThHMp!$b> zT5Uioza+>nm_bm<*d;Wrykq7np#Sgzpfd=9yXfE@0stNH|No?WBBDU6ISV`@iy0WW zg+Q3`(%rg0KtY)j*NBqf{Irtt#G+IN$CUh}R0X%pqSW&IqU>S?=U}rJdp7j|)ro@C zITxiSmSpDVDTHL^rZO1n8=2`Fnsy#~093$q#nZ(x#G~_VNObgN2Laz%%W{KUH!7TP z)!63XqQg<)=&Dm*vi8*3X(h}-1wIwik4LlbAGcX@_T8MB#_4HE65GqN z|EG9{2T4pS5&Gz;beLVmxN|>)j{np2dM5Q^*P^o=57(Y&v6yvx!n0luYZ+^|oT;WO znXR=y{$5h8+$2_bc3wwIVvuT`b(nd;<`<^%u}`kOepT>jCEpv#vZ?jlSxxhwhOi$J zQLg!TMtt35ziN|vE)Q;>Qz>xpjACe;%ja>*p54o9MbX3J7r$5W+!20faN((>68o2O zvBmxVuah<(+$m?Med?i8J0Wm?5pz$~5)sR3Sxm1c_^)1hMXfr3rSMo|d*AzvMn~s* z|2xN?5Y?r#K||F%Nm*8QH*?I2lt!;h0@S}Btx1b|y8BJ-{G`TB5h7}D6RlTHHV`Y{Sr9Gz zFh{;x@uENl?KK~?tM-=gstYpjK6mtb$@`-X*FGiBIpT4xp?E9Xn+d!5u4&b@ zw#QxB5cguqEqBu|f1hrc`K4QZ;tt)@rgBHwwc6cmC4aI;#k`%&QGVd)_Ue~k8F{aY zf8Dr5{$SV<2Oh@!sN0XGeEoS!bz|6;%BAgpeR$>Op1+>beTLIJdwa*910|nV)%Z%x8I5CnxUMCJ@_s+`-Ri$<=p2l#}z z{{R0UD1!&Iwzf7mH#apk)z{b8)YMc~R+g2Om6nzk6%`c}6y)UOq@|@LCnv|p$H&IT zMn*=4g@pwL1^M~;d3kxcxw*NxxHvgE+1uM&TU%RLSeTia85FEJ&+`oVS-o1Nw z@7}$0=g!TWH?Lp6e(l<|t5>gHzI^$TB}*1BUc7MO!Z~y1%$zxM^5n@ACr<3|@9*j9 z>Fn$TYS-4**3i&UQ&Uq?Qj(LClai8>kdP1)6B7{;5fTy-5D?(w;{#f8|Ni}(H*a3Q ze*NmztCufdzIgHCnKNfjoH%j(`0=Ahj~+R4SJ{4D@w@GD z&IG$d-4~MNK1Q)esHNq}AK{bk$UK>vmuJuCJkz=6$V~gb86q_jg=bzje^5!f?U+|CU3|3}vILnwfG_G-^F}r{30^#BQQ^&*o7Vhv4E1jqf`ad~COPce(S% z`Tfh^c};XU!!c2j%};pICmEsclGcPHkJ%(tFSH!#O5gh;GGxBS6hS>lZ;5{rk2ri3 z_}EWXdKwtE6z8#T604G0uGABx{^@Pe?Xl{E}tU%HShWq1!z; z&6ij3KUt^{?!dP{rt~zX*y4`;X8QWaSqp` z(wb`%7b$%7tvWNswDg|fY_|QLoesG-?G{h6o9Ou{X&e9SwO?k+$t$Vef1CQDiR1M1 zvv$j_o>8id{d8v-y zgv-;8&&k#D3R`vBDR_xt5R?Ah){Rfn-iJI&JHT@@Lx0)$<}3Sx)~={?D5=`(JrN0`qVCxBRS6{@1rMc}xQ44+c+H KKbLh*2~7a1D22QL literal 0 HcmV?d00001 diff --git a/system/assets/responsive-overlays/unknown.png b/system/assets/responsive-overlays/unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..6a073794579891f3fba517ae7073c9feb291f2ef GIT binary patch literal 4578 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 M07*qoM6N<$f}&ouh5!Hn literal 0 HcmV?d00001 diff --git a/system/config/system.yaml b/system/config/system.yaml index a7c1ada23..a3ac7e7a4 100644 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -63,3 +63,6 @@ debugger: twig: true # Enable debugging of Twig templates shutdown: close_connection: true # Close the connection before calling onShutdown(). false for debugging + +images: + debug: false # Show an overlay over images indicating the pixel depth of the image when working with retina for example diff --git a/system/src/Grav/Common/Page/Medium.php b/system/src/Grav/Common/Page/Medium.php index b29068647..7a588c3f7 100644 --- a/system/src/Grav/Common/Page/Medium.php +++ b/system/src/Grav/Common/Page/Medium.php @@ -49,6 +49,7 @@ class Medium extends Data protected $type = 'guess'; protected $quality = 85; + protected $debug_watermarked = false; public static $valid_actions = [ // Medium functions @@ -137,7 +138,7 @@ class Medium extends Data $config = self::$grav['config']; if ($this->image) { - $output = $this->image->cacheFile($this->type, $this->quality); + $output = $this->saveImage(); $this->reset(); $output = ROOT_DIR . $output; } else { @@ -154,7 +155,7 @@ class Medium extends Data public function url($reset = true) { if ($this->image) { - $output = $this->image->cacheFile($this->type, $this->quality); + $output = $this->saveImage(); if ($reset) $this->reset(); } else { @@ -351,6 +352,7 @@ class Medium extends Data } $this->type = 'guess'; $this->quality = 80; + $this->debug_watermarked = false; return $this; } @@ -417,6 +419,28 @@ class Medium extends Data return $this; } + protected function saveImage() + { + if (!$this->image) { + $this->image(); + } + + if (self::$grav['config']->get('system.images.debug') && !$this->debug_watermarked) { + + $ratio = $this->get('ratio'); + if (!$ratio) { + $ratio = 1; + } + + $overlay = SYSTEM_DIR . '/assets/responsive-overlays/' . $ratio . 'x.png'; + $overlay = file_exists($overlay) ? $overlay : SYSTEM_DIR . '/assets/responsive-overlays/unknown.png'; + + $this->image->merge(ImageFile::open($overlay)); + } + + return $this->image->cacheFile($this->type, $this->quality); + } + /** * Add meta file for the medium. * @@ -451,6 +475,8 @@ class Medium extends Data return; } + $alternative->set('ratio', $ratio); + $this->alternatives[(float) $ratio] = $alternative; }