<div id="article_content" class="article_content"><div id="article_content" class="article_content">
<p style="text-indent:2em">图片处理是当今软件开发中非常重要的一环,然而处理图片的开源框架却并不多。现金网上流传的<a href="http://lib.csdn.net/base/java" class="replace_word" title="Java 知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a>处理图片的代码,虽然可对图片进行简单处理,但效果并不理想。虽然也有些其他解决方案,但都摆脱不了繁琐,使用起来十分不方便。</p>
<p style="text-indent:2em">为了解决这个问题,我也是在网上找了好久,看了很多资料,功夫不负有心人,最终找到了一个处理图片十分棒的开源框架。特此拿出来与大家分享。</p>
<p style="text-indent:2em"><br>
</p>
<p style="text-indent:2em">Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比<a href="http://lib.csdn.net/base/java" class="replace_word" title="Java 知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java </a>API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。</p>
<p style="text-indent:2em">支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。</p>
<p style="text-indent:2em">另外值得一提的是,Thumbnailator至今仍不断更新,怎么样,感觉很有保障吧!</p>
<p style="text-indent:2em">Thumbnailator官网:<a target="_blank" href="http://code.google.com/p/thumbnailator/">http://code.google.com/p/thumbnailator/</a></p>
<p style="text-indent:2em">下面我们介绍下如何使用Thumbnailator</p>
<p style="text-indent:2em">原图:</p>
<p><img alt="" src="https://img-blog.csdn.net/20131227172325812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p style="text-indent:2em">1、指定大小进行缩放</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 1499px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//size(宽度, 高度)</span><span>  </span></span></li><li><span>  </span></li><li class="alt"><span><span class="comment">/*</span> </span></li><li><span><span class="comment"> * 若图片横比200小,高比300小,不变</span> </span></li><li class="alt"><span><span class="comment"> * 若图片横比200小,高比300大,高缩小到300,图片比例不变</span> </span></li><li><span><span class="comment"> * 若图片横比200大,高比300小,横缩小到200,图片比例不变</span> </span></li><li class="alt"><span><span class="comment"> * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300</span> </span></li><li><span><span class="comment"> */</span><span>  </span></span></li><li class="alt"><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li><span>    .size(<span class="number">200</span><span>, </span><span class="number">300</span><span>)  </span></span></li><li class="alt"><span>    .toFile(<span class="string">"c:/a380_200x300.jpg"</span><span>);  </span></span></li><li><span>  </span></li><li class="alt"><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li><span>    .size(<span class="number">2560</span><span>, </span><span class="number">2048</span><span>)  </span></span></li><li class="alt"><span>    .toFile(<span class="string">"c:/a380_2560x2048.jpg"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p><br>
</p>
<p style="text-indent:2em">2、按照比例进行缩放</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 1921px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_2" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//scale(比例)</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .scale(<span class="number">0</span><span>.25f)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_25%.jpg"</span><span>);  </span></span></li><li class="alt"><span>  </span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .scale(<span class="number">1</span><span>.10f)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_110%.jpg"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p><br>
</p>
<p style="text-indent:2em">3、不按照比例,指定大小进行缩放</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 2217px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_3" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_3" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//keepAspectRatio(false)默认是按照比例缩放的</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">200</span><span>,</span><span class="number">200</span><span>)  </span></span></li><li><span>    .keepAspectRatio(<span class="keyword">false</span><span>)  </span></span></li><li class="alt"><span>    .toFile(<span class="string">"c:/a380_200x200.jpg"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p><br>
</p>
<p style="text-indent:2em">4、旋转</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 2459px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_4" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_4" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=4&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//rotate(角度),正数:顺时针负数:逆时针</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li><span>    .rotate(<span class="number">90</span><span>)  </span></span></li><li class="alt"><span>    .toFile(<span class="string">"c:/a380_rotate+90.jpg"</span><span>);  </span></span></li><li><span>  </span></li><li class="alt"><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li class="alt"><span>    .rotate(-<span class="number">90</span><span>)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_rotate-90.jpg"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p><img alt="" src="https://img-blog.csdn.net/20131227173231250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><img alt="" src="https://img-blog.csdn.net/20131227173235421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><br>
</p>
<p style="text-indent:2em">5、水印</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 4099px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_5" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_5" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=5&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//watermark(位置,水印图,透明度)</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li><span>    .watermark(Positions.BOTTOM_RIGHT,ImageIO.read(newFile(<span class="string">"images/watermark.png"</span><span>)),</span><span class="number">0</span><span>.5f)  </span></span></li><li class="alt"><span>    .outputQuality(<span class="number">0</span><span>.8f)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_watermark_bottom_right.jpg"</span><span>);  </span></span></li><li class="alt"><span>  </span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li><span>    .watermark(Positions.CENTER,ImageIO.read(newFile(<span class="string">"images/watermark.png"</span><span>)),</span><span class="number">0</span><span>.5f)  </span></span></li><li class="alt"><span>    .outputQuality(<span class="number">0</span><span>.8f)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_watermark_center.jpg"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p><br>
<img alt="" src="https://img-blog.csdn.net/20131227173438828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><br>
</p>
<p><img alt="" src="https://img-blog.csdn.net/20131227173619562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><br>
</p>
<p style="text-indent:2em">6、裁剪</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 5585px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_6" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_6" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=6&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//sourceRegion()</span><span>  </span></span></li><li><span>  </span></li><li class="alt"><span><span class="comment">//图片中心400*400的区域</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .sourceRegion(Positions.CENTER,<span class="number">400</span><span>,</span><span class="number">400</span><span>)  </span></span></li><li><span>    .size(<span class="number">200</span><span>,</span><span class="number">200</span><span>)  </span></span></li><li class="alt"><span>    .keepAspectRatio(<span class="keyword">false</span><span>)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_region_center.jpg"</span><span>);  </span></span></li><li class="alt"><span>  </span></li><li><span><span class="comment">//图片右下400*400的区域</span><span>  </span></span></li><li class="alt"><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li><span>    .sourceRegion(Positions.BOTTOM_RIGHT,<span class="number">400</span><span>,</span><span class="number">400</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">200</span><span>,</span><span class="number">200</span><span>)  </span></span></li><li><span>    .keepAspectRatio(<span class="keyword">false</span><span>)  </span></span></li><li class="alt"><span>    .toFile(<span class="string">"c:/a380_region_bootom_right.jpg"</span><span>);  </span></span></li><li><span>  </span></li><li class="alt"><span><span class="comment">//指定坐标</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .sourceRegion(<span class="number">600</span><span>,</span><span class="number">500</span><span>,</span><span class="number">400</span><span>,</span><span class="number">400</span><span>)  </span></span></li><li><span>    .size(<span class="number">200</span><span>,</span><span class="number">200</span><span>)  </span></span></li><li class="alt"><span>    .keepAspectRatio(<span class="keyword">false</span><span>)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_region_coord.jpg"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p><br>
</p>
<p><img alt="" src="https://img-blog.csdn.net/20131227173924828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><img alt="" src="https://img-blog.csdn.net/20131227173901671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><img alt="" src="https://img-blog.csdn.net/20131227173941015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3BlbmcwNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></p>
<p><br>
</p>
<p style="text-indent:2em">7、转化图像格式</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 6515px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_7" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_7" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=7&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//outputFormat(图像格式)</span><span>  </span></span></li><li><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li><span>    .outputFormat(<span class="string">"png"</span><span>)  </span></span></li><li class="alt"><span>    .toFile(<span class="string">"c:/a380_1280x1024.png"</span><span>);  </span></span></li><li><span>  </span></li><li class="alt"><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li class="alt"><span>    .outputFormat(<span class="string">"gif"</span><span>)  </span></span></li><li><span>    .toFile(<span class="string">"c:/a380_1280x1024.gif"</span><span>);  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p style="text-indent:2em"> </p>
<p style="text-indent:2em">8、输出到OutputStream</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 6847px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_8" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_8" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=8&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//toOutputStream(流对象)</span><span>  </span></span></li><li><span>OutputStreamos=newFileOutputStream(<span class="string">"c:/a380_1280x1024_OutputStream.png"</span><span>);  </span></span></li><li class="alt"><span>Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li class="alt"><span>    .toOutputStream(os);  </span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p style="text-indent:2em"> </p>
<p style="text-indent:2em"> 9、输出到BufferedImage</p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="ViewSource" title="view plain">
view plain</a><a target="_blank" href="http://blog.csdn.net/wangpeng047/article/details/17610451#" class="CopyToClipboard" title="copy">copy</a><a target="_blank" href="https://code.csdn.net/snippets/130986" title="在CODE上查看代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" height="12" width="12" style="position:relative; top:1px; left:2px"></a><a target="_blank" href="https://code.csdn.net/snippets/130986/fork" title="派生到我的代码片" style="text-indent:0"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" height="12" width="12" style="position:relative; top:2px; left:2px"></a><div style="position: absolute; left: 834px; top: 7089px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_9" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_9" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=9&width=18&height=18" wmode="transparent"></div></div>
</div>
<ol class="dp-j" start="1">
<li class="alt"><span><span class="comment">//asBufferedImage()返回BufferedImage</span><span>  </span></span></li><li><span>BufferedImagethumbnail=Thumbnails.of(<span class="string">"images/a380_1280x1024.jpg"</span><span>)  </span></span></li><li class="alt"><span>    .size(<span class="number">1280</span><span>,</span><span class="number">1024</span><span>)  </span></span></li><li><span>    .asBufferedImage();  </span></li><li class="alt"><span>ImageIO.write(thumbnail,<span class="string">"jpg"</span><span>,newFile(</span><span class="string">"c:/a380_1280x1024_BufferedImage.jpg"</span><span>));  </span></span></li></ol>
<div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div>
<p style="text-indent:2em"> </p>
</div></div>

Java图片处理开源框架-Thumbnailator相关推荐

  1. Java图片处理开源框架

    图片处理是当今软件开发中非常重要的一环,然而处理图片的开源框架却并不多.现金网上流传的Java处理图片的代码,虽然可对图片进行简单处理,但效果并不理想.虽然也有些其他解决方案,但都摆脱不了繁琐,使用起 ...

  2. java图片处理开源项目_如何处理离开开源项目

    java图片处理开源项目 2015年初,我决定离开我的工作,这是我刚刚工作两年多的时候. 我的家人和朋友中没有一个人对我担任其他职位感到惊讶. 采取这一举措是一件很平常的事情,特别是在我们倾向于频繁更 ...

  3. 无意间发现一个好用的视频转换gif图片的开源框架

    知识改变命运,撸码使我快乐,2020继续游走在开源界 点赞再看,养成习惯 给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案 推荐阅读 SpringBoot2.x 教程 ...

  4. Java使用google开源工具Thumbnailator实现图片压缩

    前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高清图片,分辨率也是相当的高,当然占用的存储空 ...

  5. java图片框架_Java图片处理开源框架

    欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 5.水印 [java] view plaincopyprint? //watermark(位置,水印图,透明度) Thumb ...

  6. Java可视化开发开源框架

    SpringBoot经典之作 进入Spring Boot世界 准备开发环境搭建开发工具 基础 Spring Boot基础 分层开发Web应用程序 响应式编程 进阶 Spring Boot进阶 用ORM ...

  7. java开源框架有哪些_常用的Java微服务开源框架有哪些呢

    随着程序规模的扩大以及复杂性增大,越来越多的Java程序员选择使用微服务进行项目设计研发.微服务的出现有助于开发人员用更低的成本和更少的错误来开发程序,因此也成为Java开发人员最重要的技能之一.但常 ...

  8. 图片比对java,Java图片比对

    在自动化测试中,除了普通的值验证,经常还有一些图片验证,比如图片的匹配率,输出图片的差异图片等.本文主要用到了BufferedImage类来操作图片比对和输出差异图片,大体的思路如下: 1. 通过Im ...

  9. Android开发常用开源框架:图片处理

    1. 图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 ...

最新文章

  1. keil4如何设置自动缩进_如何设置私聊自动回复?
  2. php配合jade使用,前端自动化系列(四)之jade预编译html
  3. JAVA版开源微信管家—JeeWx捷微3.1小程序版本发布,支持微信公众号,微信企业号,支付窗
  4. python 用户的画像可视化呈现技术_一人一车一面:解读汽车大数据用户画像背后的AI技术...
  5. linux学习查看系统资源和磁盘分区
  6. 无迹卡尔曼滤波(UKF)
  7. HttpModule 介绍(转)
  8. 过滤器Filter总结+案例-实现敏感词汇过滤
  9. 生活技巧:过日子学着点
  10. IE浏览器主页被劫持,如何解决主页被篡改问题?
  11. ECCV 2022 | k-means Mask Transformer
  12. pc端分享到微信、微博、facebook、twitter
  13. OSChina 周三乱弹 ——carlos 你和你的电脑怎么过的幸福?
  14. 内网监控群晖918+(docker telegraf influxdb grafana)
  15. 人脸检测MTCNN和人脸识别Facenet(附源码)
  16. 实时时钟(Real_Time Clock)电路--中微爱芯
  17. [CTSC2016]时空旅行 (线段树分治)
  18. 计算机专业的具体能力和素质要求,计算机实验室管理员应具有的素质要求
  19. 【渝粤题库】陕西师范大学165110 培训管理 作业(高起专)
  20. windows figma导入到AE做动效

热门文章

  1. 视频合并分割软件如何合并视频
  2. 【C++学习笔记】C++输入输出流
  3. 计算机对于管理信息系统其实并不重要,浅谈计算机管理信息系统发展方向
  4. 如何少花钱又过好日子
  5. Python使用模拟退火(Simulated Annealing)算法构建优化器获取机器学习模型最优超参数组合(hyperparameter)实战+代码
  6. Paper reading:BodyNet: Volumetric Inference of 3D Human Body Shapes
  7. 微信小程序 app.js中onLaunch中方法执行完毕后再执行index首页数据请求
  8. [转载]服务数据对象简介
  9. 投影市场暗流涌动,爱普生如何以慢打快?
  10. 如何完全禁止win10自动更新