<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Image on JsonKit Blog</title>
    <link>https://jsokit.com/blog/tags/image/</link>
    <description>Recent content in Image on JsonKit Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2025 JsonKit</copyright>
    <lastBuildDate>Sat, 02 May 2026 12:32:23 +0000</lastBuildDate>
    <atom:link href="https://jsokit.com/blog/tags/image/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sprite Sheet Splitter: Connected Component Labeling and Browser-Side ZIP Packaging</title>
      <link>https://jsokit.com/blog/posts/sprite-sheet-splitter-connected-component-labeling-and-browser-side-zip-packaging/</link>
      <pubDate>Sat, 02 May 2026 12:32:23 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/sprite-sheet-splitter-connected-component-labeling-and-browser-side-zip-packaging/</guid>
      <description>Sprite Sheet Splitter: Connected Component Labeling and Browser-Side ZIP Packaging When working on game development or taking over legacy projects, you often encounter sprite sheets: dozens of small images crammed into one large texture, no metadata, just transparent gaps separating them. The designer says &amp;ldquo;source files are lost, you&amp;rsquo;ll have to cut them yourself.&amp;rdquo;&#xA;The traditional approach is manual slicing in Photoshop—tedious and error-prone. Let&amp;rsquo;s automate this.&#xA;The Core Problem: What Is &amp;ldquo;One Sprite&amp;rdquo;?</description>
    </item>
    <item>
      <title>Browser-Side OCR with Tesseract.js: A WebAssembly Text Recognition Journey</title>
      <link>https://jsokit.com/blog/posts/browser-side-ocr-with-tesseractjs-a-webassembly-text-recognition-journey/</link>
      <pubDate>Sun, 19 Apr 2026 11:26:42 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/browser-side-ocr-with-tesseractjs-a-webassembly-text-recognition-journey/</guid>
      <description>Browser-Side OCR with Tesseract.js: A WebAssembly Text Recognition Journey I recently needed to add image-to-text functionality to a project. Instead of calling a backend OCR API, I decided to go with a pure frontend solution for privacy and offline support. After diving into Tesseract.js, here&amp;rsquo;s what I learned.&#xA;How OCR Actually Works OCR (Optical Character Recognition) transforms image pixels into text. The traditional pipeline:&#xA;Preprocessing: Grayscale, binarization, noise reduction, skew correction Text detection: Find text regions in the image Character segmentation: Split continuous text into individual characters Feature extraction: Extract feature vectors for each character Character recognition: Match against trained models Tesseract is Google&amp;rsquo;s open-source OCR engine, originally written in C++.</description>
    </item>
    <item>
      <title>Building a Meta Tag Generator: Open Graph, Twitter Card, and SEO Optimization</title>
      <link>https://jsokit.com/blog/posts/building-a-meta-tag-generator-open-graph-twitter-card-and-seo-optimization/</link>
      <pubDate>Thu, 16 Apr 2026 14:08:58 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/building-a-meta-tag-generator-open-graph-twitter-card-and-seo-optimization/</guid>
      <description>Building a Meta Tag Generator: Open Graph, Twitter Card, and SEO Optimization When I added sharing functionality to a project recently, I noticed that the preview images on WeChat and Twitter were always wrong. After digging deeper, I realized these platforms don&amp;rsquo;t just scrape any content - they follow specific protocols: Open Graph and Twitter Card. I decided to build a meta tag generator to truly understand this system.&#xA;Open Graph Protocol: The Standard for Social Media Previews Open Graph was proposed by Facebook in 2010 and is now supported by all major social platforms.</description>
    </item>
    <item>
      <title>Placeholder Image Generator: From Canvas API to Smart Layout Implementation</title>
      <link>https://jsokit.com/blog/posts/placeholder-image-generator-from-canvas-api-to-smart-layout-implementation/</link>
      <pubDate>Sun, 12 Apr 2026 16:20:53 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/placeholder-image-generator-from-canvas-api-to-smart-layout-implementation/</guid>
      <description>Placeholder Image Generator: From Canvas API to Smart Layout Implementation When developing new features or designing prototypes, we often need placeholder images to fill areas where real images aren&amp;rsquo;t ready yet. Instead of hunting for images on Unsplash every time, why not build your own placeholder image generator? This article dives deep into the implementation details, covering Canvas binding, adaptive font sizing, grid backgrounds, and more.&#xA;Why Build a Placeholder Image Generator?</description>
    </item>
    <item>
      <title>Linux ln Command Deep Dive: Understanding Hard Links and Symbolic Links</title>
      <link>https://jsokit.com/blog/posts/linux-ln-command-deep-dive-understanding-hard-links-and-symbolic-links/</link>
      <pubDate>Tue, 24 Mar 2026 17:48:39 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-ln-command-deep-dive-understanding-hard-links-and-symbolic-links/</guid>
      <description>Linux ln Command Deep Dive: Understanding Hard Links and Symbolic Links 2026-05-09 12:57&#xA;Ever wondered why deleting a file sometimes doesn&amp;rsquo;t truly remove it? That&amp;rsquo;s the magic of Linux links. The ln command is one of the core tools in the Linux filesystem arsenal. Understanding it unlocks the secrets of inodes, filesystem architecture, and even how Docker image layers work.&#xA;Inodes: The Foundation of Links Before diving into ln, we need to understand inodes.</description>
    </item>
    <item>
      <title>Canvas Image Watermark Implementation: From Positioning to Tiled Patterns</title>
      <link>https://jsokit.com/blog/posts/canvas-image-watermark-implementation-from-positioning-to-tiled-patterns/</link>
      <pubDate>Fri, 27 Feb 2026 11:13:45 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/canvas-image-watermark-implementation-from-positioning-to-tiled-patterns/</guid>
      <description>Canvas Image Watermark Implementation: From Positioning to Tiled Patterns Adding watermarks to images is a common requirement—copyright protection, brand visibility, you name it. Recently built an online watermark tool, and here&amp;rsquo;s how it works under the hood.&#xA;The Essence of Watermarks It boils down to layering semi-transparent text or graphics over an image. Core code:&#xA;const canvas = document.createElement(&amp;#39;canvas&amp;#39;) const ctx = canvas.getContext(&amp;#39;2d&amp;#39;) ctx.drawImage(img, 0, 0) // Draw original image first ctx.</description>
    </item>
    <item>
      <title>From Bitmap to Vector: Implementing K-Means Color Quantization and Contour Tracing</title>
      <link>https://jsokit.com/blog/posts/from-bitmap-to-vector-implementing-k-means-color-quantization-and-contour-tracing/</link>
      <pubDate>Thu, 26 Feb 2026 17:44:31 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-bitmap-to-vector-implementing-k-means-color-quantization-and-contour-tracing/</guid>
      <description>From Bitmap to Vector: Implementing K-Means Color Quantization and Contour Tracing I needed to convert some PNG icons to SVG for a project. Tried a few online tools—either poor quality or paywalled. So I built my own and dove into the core algorithms of image vectorization.&#xA;Bitmap vs Vector: The Fundamental Difference Bitmaps (PNG/JPG) store pixel color values. Scale them up, they blur. Vectors (SVG) store mathematical paths. Scale infinitely, stay sharp.</description>
    </item>
    <item>
      <title>ICO File Format Demystified: Building a PNG to ICO Converter from Scratch</title>
      <link>https://jsokit.com/blog/posts/ico-file-format-demystified-building-a-png-to-ico-converter-from-scratch/</link>
      <pubDate>Thu, 26 Feb 2026 15:44:31 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/ico-file-format-demystified-building-a-png-to-ico-converter-from-scratch/</guid>
      <description>ICO File Format Demystified: Building a PNG to ICO Converter from Scratch I recently needed to add favicon generation to a project. Thought I could just rename a PNG to .ico and call it a day. Nope. ICO is a proper binary container format with its own structure. Here&amp;rsquo;s what I learned.&#xA;ICO Structure: Not Just a Renamed Image An ICO file is a container that holds multiple icon images at different sizes.</description>
    </item>
    <item>
      <title>Image to ASCII Art: Pixel Brightness Mapping Algorithm and Character Set Selection</title>
      <link>https://jsokit.com/blog/posts/image-to-ascii-art-pixel-brightness-mapping-algorithm-and-character-set-selection/</link>
      <pubDate>Wed, 25 Feb 2026 16:21:49 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/image-to-ascii-art-pixel-brightness-mapping-algorithm-and-character-set-selection/</guid>
      <description>Image to ASCII Art: Pixel Brightness Mapping Algorithm and Character Set Selection Written: May 4, 2026, 19:06&#xA;Have you ever seen the Mona Lisa rendered in terminal characters? The core principle of converting images to ASCII art is simpler than you might think—mapping pixel brightness to character density.&#xA;Brightness Calculation: The Mathematics of Grayscale Each pixel in an image consists of R, G, and B channels, but the human eye&amp;rsquo;s sensitivity to colors isn&amp;rsquo;t uniform.</description>
    </item>
    <item>
      <title>Image to Sketch: Gaussian Blur and Color Dodge Blending with Canvas</title>
      <link>https://jsokit.com/blog/posts/image-to-sketch-gaussian-blur-and-color-dodge-blending-with-canvas/</link>
      <pubDate>Wed, 25 Feb 2026 14:21:49 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/image-to-sketch-gaussian-blur-and-color-dodge-blending-with-canvas/</guid>
      <description>Image to Sketch: Gaussian Blur and Color Dodge Blending with Canvas I was building an image processing toolkit and needed to convert photos into pencil sketch style. After some research, I found the core principle is surprisingly simple: it&amp;rsquo;s all about combining Gaussian blur with color dodge blending.&#xA;The Theory Behind Sketch Effect What characterizes a traditional pencil sketch? Clear lines, strong contrast, white background. In digital image processing, edge detection methods like Sobel operator or Canny algorithm are common.</description>
    </item>
  </channel>
</rss>
