﻿
{"id":1608,"date":"2013-04-23T20:21:00","date_gmt":"2013-04-23T20:21:00","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=1608"},"modified":"2013-04-23T20:31:10","modified_gmt":"2013-04-23T20:31:10","slug":"asp-net-mvc-4-0-webimage-nesnesi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-4-0-webimage-nesnesi\/","title":{"rendered":"Asp.NET MVC 4.0 WebImage Nesnesi"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Asp.NET MVC&#8217;nin en g\u00fczel, kullan\u0131\u015fl\u0131 ve esnek nesnelerinden biri WebImage nesnesidir.WebImage nesnesi sayesinde resim y\u00fckleyebilir, y\u00fcklenen resmi g\u00f6r\u00fcnt\u00fcleyebilir ve \u00fczerinde efektsel i\u015flemler ger\u00e7ekle\u015ftirebiliriz.<br \/>\n<!--more--><br \/>\n\u00d6ncelikle WebImage nesnesinde en \u00e7ok kullan\u0131lan metod ve propertyleri irdeleyelim.<\/p>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>Resize Metodu<\/strong><\/em><\/span> = Elimizdeki resmin boyut ayarlar\u0131yla oynamak i\u00e7in kullan\u0131l\u0131r.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.Resize(int width, int height, bool preserveAspectRatio, bool preventEnlarge);\r\n<\/pre>\n<p>Yukar\u0131daki \u00f6rnek kodu inceleyiniz e\u011fer,<br \/>\n&#8220;preserveAspectRatio&#8221; isimli parametre, resmimizde boyutland\u0131rma i\u015flemi yap\u0131l\u0131rken, geni\u015flik ve y\u00fckseklik de\u011ferlerinin birbiriyle orant\u0131l\u0131 bir \u015fekilde de\u011fi\u015fip de\u011fi\u015fmemesini sa\u011flar.E\u011fer &#8220;true&#8221; de\u011ferini verirsek orant\u0131l\u0131 de\u011fi\u015fim g\u00f6sterir, &#8220;false&#8221; de\u011ferini verirsek birbirlerinden ba\u011f\u0131ms\u0131z de\u011fi\u015fiklikler g\u00f6stereceklerdir.<\/p>\n<p>&#8220;preventEnlarge&#8221; isimli parametre ise, resim ile boyutland\u0131rma i\u015flemi sonucundaki elde edilen resim aras\u0131ndaki boyut ili\u015fkisi, orjinal resimden b\u00fcy\u00fck ise boyutland\u0131rma i\u015flemi ger\u00e7ekle\u015fmeyecektir.&#8221;true&#8221; de\u011ferini al\u0131rsa bu \u00f6zellik ge\u00e7erli olacakt\u0131r.&#8221;false&#8221; de\u011ferini al\u0131rsa her t\u00fcrl\u00fc boyutland\u0131rma yap\u0131labilir.<\/p>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>Save Metodu<\/strong><\/em><\/span> = Resmi kaydetmeye yarar.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.Save(string filePath, string imageFormat);\r\n<\/pre>\n<p>Yukar\u0131daki \u00f6rnek kodu incelerseniz e\u011fer,<br \/>\n&#8220;filePayh&#8221; isimli parametreye, resmimizin kaydedilece\u011fi dizini veririz.<br \/>\n&#8220;imageFormat&#8221; isimli parametrede ise, resmimizin kaydedilece\u011fi dosya format\u0131n\u0131 belirleriz.<\/p>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>AddTextWatermark Metodu<\/strong><\/em><\/span> = Resim \u00fczerine yaz\u0131 tasar\u0131m\u0131 yedirmek i\u00e7in kullan\u0131l\u0131r.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.AddTextWatermark(string text, string fontColor, int fontSize, string fontStyle, string fontFamily, string horizontalAlign, string verticalAlign, int opacity, int padding);\r\n<\/pre>\n<p>Yukar\u0131daki \u00f6rnek kodu incelerseniz e\u011fer,<br \/>\n&#8220;text&#8221; isimli parametreye, resmin \u00fczerine yedirece\u011fimiz yaz\u0131y\u0131 veririz.<br \/>\n&#8220;fontColor&#8221; isimli parametreyle, yaz\u0131m\u0131z\u0131n rengini ayarlar\u0131z.<br \/>\n&#8220;fontSize&#8221; isimli parametreyle, yaz\u0131m\u0131z\u0131n boyutunu ayarlar\u0131z.<br \/>\n&#8220;fontStyle&#8221; isimli parametreyle, yaz\u0131m\u0131z\u0131n stilini ayarlar\u0131z.<br \/>\n&#8220;fontFamily&#8221; isimli parametreyle, yaz\u0131m\u0131z\u0131n tipini ayarlar\u0131z.<br \/>\n&#8220;horizontalAlign&#8221; isimli parametre, yatay hizalama bi\u00e7imini belirler.<br \/>\n&#8220;verticalAlign&#8221; isimli parametre, dikey hizalama bi\u00e7imini belirler.<br \/>\n&#8220;opacity&#8221; parametresi, yaz\u0131m\u0131z\u0131n saydaml\u0131k oran\u0131n\u0131 belirler.<br \/>\n&#8220;padding&#8221; parametresi ise, eklenen yaz\u0131 ile resim kenarl\u0131\u011f\u0131 aras\u0131ndaki mesafeyi belirler.<\/p>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>AddImageWatermark Metodu<\/strong><\/em><\/span> = Resim \u00fczerine ba\u015fka bir resim eklemek i\u00e7in kullan\u0131lan metoddur.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.AddImageWatermark(string watermarkImageFilePath, int width, int height, string horizontalAlign, string verticalAlign, int opacity, int padding);\r\n<\/pre>\n<p>Yukar\u0131daki \u00f6rnek kodu incelerseniz e\u011fer,<br \/>\nAddImageWatermark metodumuz da parametre olarak sadece &#8220;watermarkImageFilePath&#8221; isimli parametreyi inceleyece\u011fiz.Di\u011fer parametreler yukar\u0131daki &#8220;AddTextWatermark&#8221; isimli metoddaki parametreler ile ayn\u0131 i\u015flevi g\u00f6rmektedir.Bu parametremimizin g\u00f6revi ise, fligran olarak kullan\u0131lacak olan resmimizin dosya yolu ister.<\/p>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>Crop Metodu<\/strong><\/em><\/span> = Resmin belirli k\u0131sm\u0131n\u0131 kesebilmek i\u00e7in kullan\u0131l\u0131r.Tabi programc\u0131 mant\u0131\u011f\u0131yla olaya bakarsak e\u011fer, kesilen k\u0131s\u0131m ayr\u0131 bir resim olarak elimize ge\u00e7ecektir.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.Crop(int top, int left, int bottom, int right);\r\n<\/pre>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>FlipHorizontal Metodu<\/strong><\/em><\/span> = Resmi yatay y\u00f6nde tersine \u00e7evirmek amac\u0131yla kullan\u0131l\u0131r.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.FlipHorizontal();\r\n<\/pre>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>FlipVertical Metodu<\/strong><\/em><\/span> = Resmi dikey y\u00f6nde tersine \u00e7evirmek amac\u0131yla kullan\u0131l\u0131r.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.FlipVertical();\r\n<\/pre>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>RotateLeft Metodu<\/strong><\/em><\/span> = Resmi dikey sola d\u00f6nd\u00fcrmek amac\u0131yla kullan\u0131l\u0131r.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.RotateLeft();\r\n<\/pre>\n<p><span style=\"font-size: small; color: #ff0000;\"><em><strong>RotateRight Metodu<\/strong><\/em><\/span> = Resmi sa\u011fa d\u00f6nd\u00fcrmek amac\u0131yla kullan\u0131l\u0131r.\u00d6rnek kullan\u0131m\u0131;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            WebImage Resim = new WebImage(&quot;Resim Yolu&quot;);\r\n            Resim.RotateRight();\r\n<\/pre>\n<p>\u015eimdi WebImage nesnemizin bir MVC projesinde uygulamal\u0131 \u00f6rne\u011fini yapal\u0131m.<br \/>\nBen bo\u015f bir Asp.NET MVC projesi olu\u015fturuyorum.<br \/>\n&#8220;Home(Controller).cs&#8221; isimli Controller s\u0131n\u0131m\u0131za yukar\u0131daki bahsetti\u011fim \u00e7e\u015fitli i\u015flevleri g\u00f6ren metodlar\u0131 ger\u00e7ekle\u015ftirecek Action metodlar\u0131n\u0131 yazal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class HomeController : Controller\r\n    {\r\n        public ActionResult Index()\r\n        {\r\n            return View();\r\n        }\r\n\r\n        public ActionResult ResmeYaziEkle(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.AddTextWatermark(&quot;Gen\u00e7ay Y\u0131ld\u0131z&quot;, &quot;Black&quot;, 25, &quot;Regular&quot;, &quot;Arial&quot;, &quot;Right&quot;, &quot;Bottom&quot;, 50);\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n\r\n        public ActionResult ResmeResimEkle(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.AddImageWatermark(Server.MapPath(&quot;~\/Content\/Resimler\/1831471Koala.jpg&quot;), 250, 250, &quot;Right&quot;, &quot;Bottom&quot;, 50, 70);\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n\r\n        public ActionResult ResmiKes(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.Crop(300, 300, 300, 300);\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n\r\n        public ActionResult ResmiYatayCevir(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.FlipHorizontal();\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n\r\n        public ActionResult ResmiDikeyCevir(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.FlipVertical();\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n\r\n        public ActionResult ResmiSolaDondur(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.RotateLeft();\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n\r\n        public ActionResult ResmiSagaDondur(string ResimYolu)\r\n        {\r\n            WebImage Resim = new WebImage(ResimYolu);\r\n            Resim.RotateRight();\r\n            Resim.Save(Server.MapPath(ResimYolu));\r\n            return Redirect(ResimYolu);\r\n        }\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki s\u0131n\u0131f\u0131 detayl\u0131 bir bi\u00e7imde inceleyiniz.<\/p>\n<p>\u015eimdi &#8220;Home(Controller).cs&#8221; isimli Controller s\u0131n\u0131f\u0131m\u0131z\u0131n &#8220;Index&#8221; Action metodunun .cshtml g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015ftural\u0131m.Tasar\u0131msal ve programatik kodlar a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@{\r\n    WebImage Resim = null;\r\n    string ResimAdi = null;\r\n    string ResimYolu = null;\r\n    string BoyutlandirilmisResimYolu = null;\r\n    int ResimBoyutu = 0;\r\n\r\n    if (IsPost)\r\n    {\r\n        Resim = WebImage.GetImageFromRequest();\r\n        if (Resim != null)\r\n        {\r\n            Random rstgele = new Random();\r\n            ResimAdi = rstgele.Next(9999, 9999999) + Path.GetFileName(Resim.FileName);\r\n            ResimYolu = @&quot;~\/Content\/Resimler\/&quot; + ResimAdi;\r\n            Resim.Save(ResimYolu);\r\n            BoyutlandirilmisResimYolu = @&quot;~\/Content\/Boyutlandirilmis\/&quot; + ResimAdi;\r\n            Resim.Resize(100, 100, true, true);\r\n            Resim.Save(BoyutlandirilmisResimYolu);\r\n            ResimBoyutu = Resim.GetBytes().Length \/ 1024;\r\n            Response.Write(&quot;Resim ba\u015far\u0131yla y\u00fcklendi.&quot;);\r\n        }\r\n        else\r\n        {\r\n            Response.Write(&quot;Resim y\u00fcklenirken hata olu\u015ftu.&quot;);\r\n        }\r\n    }\r\n}\r\n\r\n&lt;form action=&quot;&quot; method=&quot;post&quot; enctype=&quot;multipart\/form-data&quot;&gt;\r\n    &lt;text&gt;Resim Se\u00e7iniz&lt;\/text&gt;\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;file&quot; name=&quot;fuResim&quot; id=&quot;fuResim&quot; \/&gt;&lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Resmi Y\u00fckle&quot; \/&gt;\r\n    &lt;br \/&gt;\r\n    @if (ResimYolu != null)\r\n    {\r\n        &lt;img src=&quot;@Href(BoyutlandirilmisResimYolu)&quot; \/&gt;\r\n        &lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmeYaziEkle&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resme yaz\u0131 ekle&lt;\/a&gt;&lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmeResimEkle&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resme resim ekle&lt;\/a&gt;&lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmiKes&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resmi kes&lt;\/a&gt;&lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmiYatayCevir&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resmi yatay \u00e7evir&lt;\/a&gt;&lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmiDikeyCevir&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resmi dikey \u00e7evir&lt;\/a&gt;&lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmiSolaDondur&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resmi sola d\u00f6nd\u00fcr&lt;\/a&gt;&lt;br \/&gt;\r\n        &lt;a href=&quot;@Url.Action(&quot;ResmiSagaDondur&quot;, new { ResimYolu = ResimYolu })&quot;&gt;Resmi sa\u011fa d\u00f6nd\u00fcr&lt;\/a&gt;&lt;br \/&gt;\r\n    }\r\n&lt;\/form&gt;\r\n<\/pre>\n<p>Yukar\u0131daki &#8220;Index.cshtml&#8221; sayfas\u0131nda yapt\u0131\u011f\u0131m i\u015flemleri \u00e7ok dikkatli bir \u015fekilde incelemenizi tavsiye ediyorum.<\/p>\n<p>Yapt\u0131\u011f\u0131m\u0131z \u00e7al\u0131\u015fman\u0131n son ekran g\u00f6r\u00fcnt\u00fcs\u00fc a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/WebImageUygulama.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/WebImageUygulama.png\" alt=\"WebImageUygulama\" width=\"245\" height=\"330\" class=\"aligncenter size-full wp-image-1612\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/WebImageUygulama.png 245w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/WebImageUygulama-222x300.png 222w\" sizes=\"auto, (max-width: 245px) 100vw, 245px\" \/><\/a><\/p>\n<p>Varsayal\u0131m ki, &#8220;Resmi yatay \u00e7evir&#8221; men\u00fcs\u00fcne t\u0131klam\u0131\u015f olay\u0131m.G\u00f6r\u00fcnt\u00fc a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/Koala.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/Koala.jpg\" alt=\"Koala\" width=\"355\" height=\"285\" class=\"aligncenter size-full wp-image-1613\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/Koala.jpg 355w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/04\/Koala-300x240.jpg 300w\" sizes=\"auto, (max-width: 355px) 100vw, 355px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, Windows 7 i\u015fletim sistemlerinde varsay\u0131lan olarak gelen ve hemen hemen herkesin tan\u0131d\u0131\u011f\u0131 Koala arkada\u015f\u0131m\u0131z\u0131 yatay olarak programatik \u00e7evirdir.\u00c7ok zevkli de\u011fil mi? \ud83d\ude42<\/p>\n<p>Asp.NET MVC&#8217;de WebImage nesnesi sayesinde bir \u00e7ok prosed\u00fcrel y\u00f6ntem ve kodlardan kurtulmu\u015f oluyoruz.<br \/>\nFaydalanman\u0131z dile\u011fiyle..<\/p>\n<p>Bir sonraki yaz\u0131mda g\u00f6r\u00fc\u015f\u00fcr\u00fcz..<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar..<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Asp.NET MVC&#8217;nin en g\u00fczel, kullan\u0131\u015fl\u0131 ve esnek nesnelerinden biri WebImage nesnesidir.WebImage nesnesi sayesinde resim y\u00fckleyebilir, y\u00fcklenen resmi g\u00f6r\u00fcnt\u00fcleyebilir ve \u00fczerinde efektsel i\u015flemler ger\u00e7ekle\u015ftirebiliriz.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,345],"tags":[746,283,755,416],"class_list":["post-1608","post","type-post","status-publish","format-standard","hentry","category-asp-net-mvc","category-mvc-4-0","tag-asp-net-mvc","tag-mvc","tag-mvc-4-0","tag-webimage"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/1608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=1608"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/1608\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=1608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=1608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=1608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}