C#

[".0s4*0|collections;datetime-format;.",["F@eAV","LAGAICMKBEBERgBEKNLA","OYADADOCOOSTUUUUTTUUUUOOPGDGDGDOCCCOCOCCWCSTTUUUUTTUUUU","swtrj..fr.",".NET","Array","Dictionary","List","String","2D","Async","Console","DataTable","Dates","DateTime","Enum","File","For","Foreach","Format","IEnumerable","If","IndexOf","Lambda","LINQ","Optimization","Parse","Path","Process","Property","Random","Regex","Replace","Sort","Split","Static","Substring","Switch","Tuple","While","PNG"," images can be optimized. Many are needlessly large. These unoptimized images cost your company more and making your product slower. With the C# language, you can develop a PNG compression function that calls executables. ","PNG optimization program results","\n\nBefore optimization: ","7496 bytes","\nAfter optimization: ","6983 bytes"," [7% smaller]","Intro."," First, what we are going to do is embed the OPTIPNG.EXE executable within a Visual Studio project. Then, we will use C# to control that executable. We are not going to implement any advanced image algorithms. ","Note: ","The PNG optimization space is extremely complicated. Developing optimization algorithms is challenging.","Make new console program."," First, please start Visual Studio from your Start menu. Go to New Project, Visual C# and then Console Application and specify a name. For the example, I have ConsoleApplication125.","Now,"," we need to add the OPTIPNG executable to our application. In Visual Studio, go to Project and then Add Existing Item. In the dialog box, change the drop-down to All Files (*.*). This allows you to click and add the optipng.exe.","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","Change"," \"Copy if newer.\" You need to right-click on the optipng.exe file and select Properties, then Copy to Output Directory, and then \"Copy if newer\". This means the exe will always be in the same directory as your app.","Example."," Your code needs to use ProcessStartInfo, as well as Process and Process.Start. We can use the using statement around Process to make sure the resources are properly disposed. The using statement is implemented as a try-finally pattern. ","C# program that uses ProcessStartInfo","\n\nusing System;\nusing System.Diagnostics;\n\nclass Program\n{\n static void Main()\n {","\n // PNG file path.\n ","string f = \"C:\\\\test.png\";","\n\n // Run OPTIPNG with level 7 compression.\n ","ProcessStartInfo info = new ProcessStartInfo();\n info.FileName = \"optipng.exe\";\n info.WindowStyle = ProcessWindowStyle.Hidden;\n info.Arguments = \"\\\"\" + f + \"\\\" -o7\";","\n\n // Use Process for the application.\n ","using (Process exe = Process.Start(info))\n {\n exe.WaitForExit();\n }\n }\n}","We create"," a new ProcessStartInfo with the filename specified to OPTIPNG. We use ProcessWindowStyle.Hidden to be more user-friendly. The Arguments property is assigned a new string of the PNG file to be compressed. ","Tip: ","We use the -o7 option in OPTIPNG. This tells OPTIPNG to use heavy compression.","Finally: ","It uses Process.Start to run OPTIPNG on C:\\\\test.png. The end result is that test.png will be optimized with OPTIPNG.","Note: ","The file name here, C:\\\\test.png, must be set by you either manually or with logic. It is just a custom path to a PNG.","Test program."," To test this program, put an image titled test.png in your C:\\\\ directory, or wherever the path specifies. Go to Explorer and get properties on test.png. Write down the byte of the PNG before. My PNG image was 7,496 bytes. ","Now: ","Run the C# program and wait for it to exit. It should take a fraction of a second, not counting .NET initialization time.","After I ran"," the console program, my PNG image's size changed to 6,983 bytes. That's a savings of about 7%, on an image that was already compressed with Adobe Fireworks. The results are shown at the top. ","Validation: ","The PNG files are exactly equivalent in appearance. Using tools like these always create equivalent PNG images.","Caution: ","Be aware that some mobile phones may not work well with a small number of images compressed with PNGOUT on some settings.","Summary."," Here we saw how to control OPTIPNG with a C# program. This can be used in a larger application to save 7% or more of your bandwidth. I shared some notes on other utilities, and a way to embed any EXE in C# programs. ","Finally: ","The best compression on the example image resulted in a file of 6,356 bytes, which is about 18% smaller than the first.","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto"],"url(data:image/png;base64,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)","url(data:image/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAABwCAMAAACAaqqiAAAAMFBMVEWj05zv+O7o9Ob8/vze79v////j8uH6/Pnr9urg8N70+vP3+/bf79zG4sHR6M61269duYTTAAACd0lEQVR4Xu3a646bQAyG4fg4ByC5/7vtFqlqtsV4UcvaI817Bc8P5wtBeXx38h/KhZ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oid7wvTHQm3xqCPSrJET75uHQW5Hh0E+R4dAqw6G3IqOhty6SHe2T86OLDIh+joh+jYh+aGK0/5hUbkED0h2T13cibs870NR4hRvQP7H8ejxuQVf+SPtVtN9OvgddVt7Tchntdxca+VeVRkF3/l2DQdDK72kfAQ38R1jSo6nxX1VKjq58UIPU6MLH6ZIYjWyFJSu6s91aKSda+azWM6KBnXRJh6bGbkjJ0Mh+3CAVeuGvpT0RWvmrYcmC7nyhSinQ1PhKDTKgK19Ml3B0WflyWILRyEYK0E5OOwhtz93yEYkI1ZPTDkTrEejteJCNMA4Nhx5/xLlRCNqeu+qPOINc0uJel8/h3vMK2p47RHRGXOUSGuUkvIYubAXOM2uPQyMbNZI9MswoYejOVuCMeIlDKxup88xaJQwNbLV4cxeGpsZG1fkUgoShK1uRN3cx6H+buzg0HoOZG52POMb98aob10q1e3MXh1Z7Fs5HvEoYGuxr9uYuDG0MA5CIO3dhaHTfNFZr7uLQ0Nw3jV35oCUQLVRX73VMNeYuDH36668BGQ9LawlGiyx69qZRjbkLRovYp41gzF08WqjyhbpkQBunbaSSAG1sm9mSA/122n5VUqGFkN0aJUPv8+cEkg4t0pvzKcyIFoKV7Xo6tD9/KOnQ/mmXdGh//qpkRdvf7I3Sof3TBsmKtr/ZVdKh/dPu6dD+aaNkQ/unvZZ0aP+0q6RC+8HKjUZDC2EXox88iqN9rB8RzAAAAABJRU5ErkJggg==)"]

["url(data:image/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACCAgMAAADasxWRAAAADFBMVEX/6Nn///+VlZX29va5ksB5AAAASElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOSAALWyrsxEHLDAAAAAElFTkSuQmCC)","E","url(data:image/png;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACCAgMAAADasxWRAAAADFBMVEXZ7/////+VlZX29vYl5th1AAAASElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOSAALWyrsxEHLDAAAAAElFTkSuQmCC)","url(data:image/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAA9CAAAAAD94GjJAAADQklEQVR4Xt3awW4yMQwE4P+heLq8VJ7HZ5/nOtf8DS61QIFJCt0I5kKlKM1+8tpit/3XLiEBd7cedwfYVG63kG1/WpAIt0H8PosYb8G0Cp7Bi0nJGcRHqNT8GsWrQ19L4ggijpM7ZGD2d6Rm6ya5Q5foWJI26R2qRAeTtMmliaJEf0ty01kmmSjRfhKWSRAl2k5y0QxyR248ggTLeET0RpDWu4lmh5HcAbJlCElyAPzZROi5DDuKRMq5dHsm2WQNMFg+inQvy2dStN9+EkS3q+YfcHeTKEiqTKJK2EBqgiR22Hgtq/4eJH9A4u0A3X3j4QlSehOwh4Rfk/yccaflQ+XuIc550t1nb2RBDiHpiazDCwg9Q7GzbSPR1o9EiHAOR+Rw7iHBfnffdVAtp9OpfOXxLs8cQKKbrY9wdpGjgyJtluR/QYI9SlsoUj1NkvATdx5NmjsQWSTrQFVbRtBzNIkr4w5fonoNsO+CfVu/f4yOc++fxdrtQrRk8QvAajlvsBaJX1fLKRjlfGp8SpLPipJUNOk2UAs/HZr6SJDqComzjRQmlG6qWCRVtVBPpUSdxqRYwJcRkmSYFQWpA84qihsPjdF3/aOohUgNQ5LKmRwWno8qLxkPud27qZwi/pBkeYXdLBauCp56XnVW3H9TJIMWJQm0GioqkiVJLbQYD9ckC07OhzJNMmhRmtgZHVVfSArPkJTN1JmYJJkUJSlqw1eSAlfM6l2Sd6x114XEqwDDMmmRhWiKRHKWlM01IKXQY5T/Exe6+Nre6WZdVHM+tNDZmJQyRcIdUjZTSZJ+ujDO0Xk+PFLytIggyRsvBkQdkALdlz1JyoRJUV5/PlvYkASgWwCsjYcyIOUhLUmqANCicHtM21KZ8Pge9xSJtWuqlXukFt4kyTL5VI1W4hlne0WilZKkX+Rp0WZStNIzJKhv7Mc+1UbnrZCUaAHz+tcp+QVipZeUaCspW+mJiQd77pL2v+Y3vFi0/524cV60n0RqUZK0aD+J8XwNkg/+om4Pvv75newjDS5PPAPCprKVpMOPI3l7JxJmSPw4Etqnkbx9Gsnbm5Fc33XvRmpU/yf+fqQewsX/5r8bKUIiZe4A21vmP24hqdv1SRFyAAAAAElFTkSuQmCC)"]