<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery, Ajax, PHP, JSON, XML, Web Technologies &#187; Image</title>
	<atom:link href="http://blog.chonla.com/category/image/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chonla.com</link>
	<description>คุยกันเรื่อง jQuery, Ajax, PHP, JSON, XML และ Web Technologies เป็นภาษาไทยกันดีกว่า</description>
	<lastBuildDate>Tue, 17 Jan 2012 18:27:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Image Tag แบบไม่ง้อไฟล์</title>
		<link>http://blog.chonla.com/2009/09/image-tag-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%87%e0%b9%89%e0%b8%ad%e0%b9%84%e0%b8%9f%e0%b8%a5%e0%b9%8c/</link>
		<comments>http://blog.chonla.com/2009/09/image-tag-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%87%e0%b9%89%e0%b8%ad%e0%b9%84%e0%b8%9f%e0%b8%a5%e0%b9%8c/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 16:24:43 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[Performance Tuning]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=240</guid>
		<description><![CDATA[ใช่ครับ วันนี้ผมจะมาเล่าเรื่องการเขียน image tag แบบไม่ธรรมดาให้อ่านกันครับ image tag ที่ผมหมายถึงเนี่ย มันก็คือ นี่แหละครับ การเขียนแบบไม่ง้อไฟล์คือโดยปกติแล้ว เราจะระบุชื่อไฟล์ รวมถึง path ใน attribute src ใช่มั๊ยครับ แต่คราวนี้ เราจะเขียนแบบไม่ทำแบบนั้นครับ งานนี้เล่นจริง เจ็บจริง ไม่ใช้ javascript ไม่ใช้ css ครับ เพื่อความตื่นเต้น ลองไปดูที่ LIVE DEMO กันก่อนดีกว่าครับ จะเห็นได้ว่า มันก็ไม่เห็นมีอะไรพิเศษ ก็เป็นเว็บที่มีรูป smiley ธรรมดา แต่ถ้าลอง view source ดู จะเห็นครับ ว่ามันพิเศษยังไง ใช่แล้วครับ ทริกของมันก็คือ เราทำการระบุ content-type และเนื้อของไฟล์ลงไปตรง ๆ ในนั้นเลยครับ รูปแบบการเขียนคือ]]></description>
			<content:encoded><![CDATA[<p>ใช่ครับ วันนี้ผมจะมาเล่าเรื่องการเขียน image tag แบบไม่ธรรมดาให้อ่านกันครับ image tag ที่ผมหมายถึงเนี่ย มันก็คือ <IMG> นี่แหละครับ การเขียนแบบไม่ง้อไฟล์คือโดยปกติแล้ว เราจะระบุชื่อไฟล์ รวมถึง path ใน attribute src ใช่มั๊ยครับ แต่คราวนี้ เราจะเขียนแบบไม่ทำแบบนั้นครับ งานนี้เล่นจริง เจ็บจริง ไม่ใช้ javascript ไม่ใช้ css ครับ<br />
<span id="more-240"></span><br />
เพื่อความตื่นเต้น ลองไปดูที่ <a href="http://sandbox.chonla.com/imgtag/" target="_blank" title="LIVE DEMO : Image Tag แบบไม่ง้อไฟล์">LIVE DEMO</a> กันก่อนดีกว่าครับ</p>
<p>จะเห็นได้ว่า มันก็ไม่เห็นมีอะไรพิเศษ ก็เป็นเว็บที่มีรูป smiley ธรรมดา แต่ถ้าลอง view source ดู จะเห็นครับ ว่ามันพิเศษยังไง</p>
<p>ใช่แล้วครับ ทริกของมันก็คือ เราทำการระบุ content-type และเนื้อของไฟล์ลงไปตรง ๆ ในนั้นเลยครับ รูปแบบการเขียนคือ <img src="data:<content-type>;<content-encoding>,<file-content>&#8220;> นั่นเองครับ จากตัวอย่าง ผมกำหนดไฟล์ประเภท gif ก็จะระบุ content-type เป็น image/gif และ content-encoding เป็น base64 เพื่อบอกว่า file-content ที่ตามมา ถูก encode ด้วย base64 algorithm นั่นเอง</p>
<p>รู้แล้วทีนี้ก็ง่ายใช่มั๊ยล่ะครับ <img src='http://blog.chonla.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.chonla.com%2F2009%2F09%2Fimage-tag-%25e0%25b9%2581%25e0%25b8%259a%25e0%25b8%259a%25e0%25b9%2584%25e0%25b8%25a1%25e0%25b9%2588%25e0%25b8%2587%25e0%25b9%2589%25e0%25b8%25ad%25e0%25b9%2584%25e0%25b8%259f%25e0%25b8%25a5%25e0%25b9%258c%2F&amp;title=Image%20Tag%20%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%87%E0%B9%89%E0%B8%AD%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C" id="wpa2a_2"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/09/image-tag-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%87%e0%b9%89%e0%b8%ad%e0%b9%84%e0%b8%9f%e0%b8%a5%e0%b9%8c/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>ปลั๊กอิน Image rescale สำหรับ jQuery</title>
		<link>http://blog.chonla.com/2009/08/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-image-rescale-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/</link>
		<comments>http://blog.chonla.com/2009/08/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-image-rescale-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 19:49:08 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Homemade Plugin]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Rescale]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=207</guid>
		<description><![CDATA[ช่วงนี้มีโอกาสได้ลองทำ plugin มาใช้กับ jQuery หลายตัวครับ Image rescale plugin นี่เป็นตัวหนึ่งครับ จริง ๆ แล้ว rescale image ด้วย jQuery มันไม่ใช่เรื่องใหญ่โต หรือยุ่งยากมากมายอะไร เพียงแค่ว่า ผมอยากได้แบบที่เป็น plugin ครับ และผมหามันไม่เจอ แค่นั้นเองครับ เลยบ้าพลัง เขียนเองซะเลยครับ หลักการง่าย ๆ กับการทำ rescale กับรูปภาพคือ การคง aspect ratio ของภาพไว้ นั่นคือ ถ้าภาพขนาด 4:3 หมายถึง กว้าง 800 pixels สูง 600 pixels เมื่อย่อลงไปเหลือขนาด กว้าง 200 pixels แล้ว จะต้องได้ความสูง 150 pixels (อัตราส่วนเดิมคือ 4:3 [...]]]></description>
			<content:encoded><![CDATA[<p>ช่วงนี้มีโอกาสได้ลองทำ plugin มาใช้กับ jQuery หลายตัวครับ Image rescale plugin นี่เป็นตัวหนึ่งครับ จริง ๆ แล้ว rescale image ด้วย jQuery มันไม่ใช่เรื่องใหญ่โต หรือยุ่งยากมากมายอะไร เพียงแค่ว่า ผมอยากได้แบบที่เป็น plugin ครับ และผมหามันไม่เจอ แค่นั้นเองครับ เลยบ้าพลัง เขียนเองซะเลยครับ<br />
<span id="more-207"></span><br />
หลักการง่าย ๆ กับการทำ rescale กับรูปภาพคือ การคง aspect ratio ของภาพไว้ นั่นคือ ถ้าภาพขนาด 4:3 หมายถึง กว้าง 800 pixels สูง 600 pixels เมื่อย่อลงไปเหลือขนาด กว้าง 200 pixels แล้ว จะต้องได้ความสูง 150 pixels (อัตราส่วนเดิมคือ 4:3 นั่นเอง)</p>
<p>หลังจากนั้น ก็มาถึงสิ่งที่ผมอยากให้ plugin ตัวนี้มี นั่นก็คือ การกำหนดความกว้าง หรือความสูงสูงสุด นั่นคือ ถ้าผมกำหนดให้ความกว้างที่มากที่สุดมีค่าเป็น 200 pixels และภาพต้นฉบับมีความกว้างเป็น 1024 pixels ภาพที่ย่อแล้ว จะเหลือความกว้างเป็น 200 pixels นั่นเอง</p>
<p>รูปแบบการใช้งาน</p>
<pre class="js">$.imgrescale(options);</pre>
<p>โดยที่ options ในตอนนี้มีแค่ตัวเดียวครับ คือ maxsize ดังนั้นถ้าต้องการกำหนดค่า maxsize ก็จะเรียกแบบนี้ครับ</p>
<pre class="js">$.imgrescale({maxsize:200});</pre>
<p>ลองดูตัวอย่างที่ <a title="LIVE DEMO: jQuery Image Rescale Plugin" href="http://sandbox.chonla.com/imgrescale" target="_blank">LIVE DEMO</a> ได้เลยครับ</p>
<p>สำหรับ source code ที่เป็น minified ก็<a title="jQuery Plugin : MINIFIED IMAGE RESCALE JS" href="http://sandbox.chonla.com/imgrescale/js/jquery.imgrescale.min.js" target="_blank">ดาวน์โหลดได้จากที่นี่เลยครับ</a></p>
<p>ใช้ดีอย่าลืม feedback แล้วบอกต่อนะครับ <img src='http://blog.chonla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>อ้างอิง</p>
<ul>
<li>Aspect Ratio: <a href="http://en.wikipedia.org/wiki/Aspect_ratio_(image)">http://en.wikipedia.org/wiki/Aspect_ratio_(image)</a></li>
</ul>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.chonla.com%2F2009%2F08%2F%25e0%25b8%259b%25e0%25b8%25a5%25e0%25b8%25b1%25e0%25b9%258a%25e0%25b8%2581%25e0%25b8%25ad%25e0%25b8%25b4%25e0%25b8%2599-image-rescale-%25e0%25b8%25aa%25e0%25b8%25b3%25e0%25b8%25ab%25e0%25b8%25a3%25e0%25b8%25b1%25e0%25b8%259a-jquery%2F&amp;title=%E0%B8%9B%E0%B8%A5%E0%B8%B1%E0%B9%8A%E0%B8%81%E0%B8%AD%E0%B8%B4%E0%B8%99%20Image%20rescale%20%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%20jQuery" id="wpa2a_4"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/08/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-image-rescale-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>สร้าง Square Thumbnail แบบ Facebook กันเถอะ</title>
		<link>http://blog.chonla.com/2008/12/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-square-thumbnail-%e0%b9%81%e0%b8%9a%e0%b8%9a-facebook-%e0%b8%81%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%96%e0%b8%ad%e0%b8%b0/</link>
		<comments>http://blog.chonla.com/2008/12/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-square-thumbnail-%e0%b9%81%e0%b8%9a%e0%b8%9a-facebook-%e0%b8%81%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%96%e0%b8%ad%e0%b8%b0/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 11:09:06 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[function]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[GD]]></category>
		<category><![CDATA[Thumbnail]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=136</guid>
		<description><![CDATA[งง Thumbnail แบบ Facebook คืออะไร ความจริงแล้วผมก็ไม่อยากอ้างถึง Facebook ซักเท่าไหร่ แต่ก็เป็นเพราะว่า ผมไปเห็นการสร้าง Thumbnail แบบนี้ครั้งแรกที่ Facebook ครับ ดังนั้น ใครจะบอกว่า เฮ้ย ของที่นั่นที่นี่ตะหาก อันนั้นก็แล้วแต่ครับ แค่ผมเห็นที่ Facebook เท่านั้นเองครับ ตามลอจิกของมันก็ไม่ได้ยุ่งยากอะไรครับ แต่จะแตกต่างจากที่เราเคยคิดในเรื่องการสร้าง Thumbnail ทั่ว ๆ ไป คือ ไม่ใช่แค่ย่อรูปลงมา แต่เราจะ Crop เอาเฉพาะส่วนที่ต้องการ ทำให้เราได้ Thumbnail ที่เป็นรูปสี่เหลี่ยมจัตุรัสครับ หลักการง่าย ๆ คือ เราจะย่อลงมาให้ด้านที่สั้นที่สุดให้มีขนาดตามที่ต้องการ หลังจากนั้นก็ทำการ Crop รูปที่เหลือให้เป็นสี่เหลี่ยมจัตุรัสตามขนาดที่เราเลือกเท่านั้นเองครับ ตำแหน่งของการ Crop ที่ผมเลือก คือตรงกึ่งกลางของภาพครับ ด้วยเหตุผลที่ว่า ปกติแล้ว ภาพถ่าย เนื้อหาที่สำคัญจะอยู่บริเวณกลาง ๆ ของภาพครับ ดังนั้นเราก็จะ Crop [...]]]></description>
			<content:encoded><![CDATA[<p>งง Thumbnail แบบ Facebook คืออะไร ความจริงแล้วผมก็ไม่อยากอ้างถึง Facebook ซักเท่าไหร่ แต่ก็เป็นเพราะว่า ผมไปเห็นการสร้าง Thumbnail แบบนี้ครั้งแรกที่ Facebook ครับ ดังนั้น ใครจะบอกว่า เฮ้ย ของที่นั่นที่นี่ตะหาก อันนั้นก็แล้วแต่ครับ แค่ผมเห็นที่ Facebook เท่านั้นเองครับ</p>
<p><span id="more-136"></span></p>
<p>ตามลอจิกของมันก็ไม่ได้ยุ่งยากอะไรครับ แต่จะแตกต่างจากที่เราเคยคิดในเรื่องการสร้าง Thumbnail ทั่ว ๆ ไป คือ ไม่ใช่แค่ย่อรูปลงมา แต่เราจะ Crop เอาเฉพาะส่วนที่ต้องการ ทำให้เราได้ Thumbnail ที่เป็นรูปสี่เหลี่ยมจัตุรัสครับ</p>
<p>หลักการง่าย ๆ คือ เราจะย่อลงมาให้ด้านที่สั้นที่สุดให้มีขนาดตามที่ต้องการ หลังจากนั้นก็ทำการ Crop รูปที่เหลือให้เป็นสี่เหลี่ยมจัตุรัสตามขนาดที่เราเลือกเท่านั้นเองครับ</p>
<p>ตำแหน่งของการ Crop ที่ผมเลือก คือตรงกึ่งกลางของภาพครับ ด้วยเหตุผลที่ว่า ปกติแล้ว ภาพถ่าย เนื้อหาที่สำคัญจะอยู่บริเวณกลาง ๆ ของภาพครับ ดังนั้นเราก็จะ Crop เฉพาะส่วนกลาง ๆ ของภาพมาใช้นั่นเองครับ</p>
<p>เมื่อได้ลอจิกง่าย ๆ ตามนี้แล้ว ก็จะได้ Code ตามนี้ครับ</p>
<pre name="code" class="php">
function create_square_thumb($srcimg, $thumbimg, $size)
{
$src = imagecreatefromjpeg($srcimg);
if (!$src) return FALSE;

list($w, $h) = getimagesize($srcimg);
$nw = 0;
$nh = 0;
$sx = 0;
$sy = 0;
if ($w &gt; $h)
{
$nh = $size;
$nw = $size * $w / $h;
$sx = ($w - $h) / 2;
$ss = $h;
}
else
{
$nw = $size;
$nh = $size * $h / $w;
$sy = ($h - $w) / 2;
$ss = $w;
}

$tmp = imagecreatetruecolor($size, $size);
if (!$tmp) return FALSE;

if (imagecopyresampled($tmp, $src, 0, 0, $sx, $sy, $size, $size, $ss, $ss))
return imagejpeg($tmp, $thumbimg, 100);
return FALSE;
}
</pre>
<p>วิธีเรียกใช้งานก็ง่ายดายเหลือเกินครับ แค่</p>
<pre name="code" class="php">
<em>bool</em> create_square_thumb(<em>&lt;ชื่อรูปต้นฉบับ&gt;</em>, <em>&lt;ชื่อรูป Thumbnail ที่ต้องการ&gt;</em>, <em>&lt;ขนาดความกว้างของรูป Thumbnail ที่ต้องการ&gt;</em>);
</pre>
<p>ใครที่สร้างไฟล์ไม่ได้ก็อย่าลืม set permission ของ path ปลายทางให้สามารถ write ได้ด้วยนะครับ (เช่น 777)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.chonla.com%2F2008%2F12%2F%25e0%25b8%25aa%25e0%25b8%25a3%25e0%25b9%2589%25e0%25b8%25b2%25e0%25b8%2587-square-thumbnail-%25e0%25b9%2581%25e0%25b8%259a%25e0%25b8%259a-facebook-%25e0%25b8%2581%25e0%25b8%25b1%25e0%25b8%2599%25e0%25b9%2580%25e0%25b8%2596%25e0%25b8%25ad%25e0%25b8%25b0%2F&amp;title=%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%20Square%20Thumbnail%20%E0%B9%81%E0%B8%9A%E0%B8%9A%20Facebook%20%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%96%E0%B8%AD%E0%B8%B0" id="wpa2a_6"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2008/12/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-square-thumbnail-%e0%b9%81%e0%b8%9a%e0%b8%9a-facebook-%e0%b8%81%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%96%e0%b8%ad%e0%b8%b0/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

