{"id":39170,"date":"2025-11-07T05:44:29","date_gmt":"2025-11-07T13:44:29","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=39170"},"modified":"2025-11-07T05:44:30","modified_gmt":"2025-11-07T13:44:30","slug":"how-do-i-restore-a-damaged-photo","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/","title":{"rendered":"How do I restore a damaged photo?"},"content":{"rendered":"\n<p>Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from Photoshop healing brushes to Python inpainting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Question:<\/h2>\n\n\n\n<p><em>I found a box of old photos, and several are torn, faded, and covered with scratches. I can scan them, but I want to do this right and keep a high-quality \u201cmaster\u201d while producing a shareable version for the web. How do I restore a damaged photo? Which steps should I follow in order, and is there a way to automate parts of the cleanup with code? Any tips for handling color cast and blur would be appreciated.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Answer:<\/h2>\n\n\n\n<p>Photo restoration works best when you preserve a high-quality source, fix damage in a predictable order, and avoid destructive edits. The process presented here can be used for both individual portraits and multiple scans.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Scan or capture the best possible source<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clean the scanner glass and the photo surface lightly with a blower.<\/li>\n\n\n\n<li>Scan at 600 to 1200 DPI for small prints; save a 16-bit TIFF or PNG master.<\/li>\n\n\n\n<li>Avoid initial JPEG saves. Learn how resolution interacts with print size in this primer on <a href=\"https:\/\/cloudinary.com\/guides\/image\/dpi-vs-pixels\">DPI vs pixels<\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Use a simple Python script to restore photos (when possible)<\/h3>\n\n\n\n<p>Below is a minimal script using OpenCV and scikit-image to do color correction, denoising, and inpainting for light scratches.&nbsp;<\/p>\n\n\n\n<p>Install deps: <code>pip install opencv-python scikit-image numpy<\/code><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">import cv2 <span class=\"hljs-keyword\">as<\/span> cv\nimport numpy <span class=\"hljs-keyword\">as<\/span> np\nfrom skimage import restoration, img_as_float\n\n<span class=\"hljs-comment\"># 1) Load and convert to working space<\/span>\nimg = cv.imread(<span class=\"hljs-string\">\"scan.tif\"<\/span>)\u00a0 <span class=\"hljs-comment\"># use your high-DPI scan<\/span>\norig = img.copy()\n\n<span class=\"hljs-comment\"># 2) Global color correction with LAB + CLAHE<\/span>\nlab = cv.cvtColor(img, cv.COLOR_BGR2LAB)\nL, A, B = cv.split(lab)\nclahe = cv.createCLAHE(clipLimit=<span class=\"hljs-number\">2.0<\/span>, tileGridSize=(<span class=\"hljs-number\">8<\/span>,<span class=\"hljs-number\">8<\/span>))\nL_eq = clahe.apply(L)\nlab_eq = cv.merge((L_eq, A, B))\nimg = cv.cvtColor(lab_eq, cv.COLOR_LAB2BGR)\n\n<span class=\"hljs-comment\"># 3) Denoise without destroying edges<\/span>\nimg = cv.fastNlMeansDenoisingColored(img, None, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">21<\/span>)\n\n<span class=\"hljs-comment\"># 4) Detect bright scratches and inpaint<\/span>\ngray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)\n<span class=\"hljs-comment\"># Emphasize thin lines<\/span>\nhighpass = cv.Laplacian(gray, cv.CV_16S, ksize=<span class=\"hljs-number\">3<\/span>)\nhp = cv.convertScaleAbs(highpass)\n_, mask = cv.threshold(hp, <span class=\"hljs-number\">20<\/span>, <span class=\"hljs-number\">255<\/span>, cv.THRESH_BINARY)\nmask = cv.morphologyEx(mask, cv.MORPH_OPEN, np.ones((<span class=\"hljs-number\">3<\/span>,<span class=\"hljs-number\">3<\/span>), np.uint8), iterations=<span class=\"hljs-number\">1<\/span>)\nrestored = cv.inpaint(img, mask, <span class=\"hljs-number\">3<\/span>, cv.INPAINT_TELEA)\n\n<span class=\"hljs-comment\"># 5) Optional mild sharpening<\/span>\nsharpen_kernel = np.<span class=\"hljs-keyword\">array<\/span>(&#91;&#91;<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">-1<\/span>, <span class=\"hljs-number\">0<\/span>],\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &#91;<span class=\"hljs-number\">-1<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">-1<\/span>],\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &#91;<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">-1<\/span>, <span class=\"hljs-number\">0<\/span>]])\nrestored = cv.filter2D(restored, <span class=\"hljs-number\">-1<\/span>, sharpen_kernel)\n\ncv.imwrite(<span class=\"hljs-string\">\"restored_master.png\"<\/span>, restored)\u00a0 <span class=\"hljs-comment\"># keep a high-quality master<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Notes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For larger tears, manually draw a mask of the missing area and pass it to <code>cv.inpaint<\/code>.<\/li>\n\n\n\n<li>For strong motion blur, try deconvolution. If you can estimate a motion kernel, you can use Wiener filtering with scikit-image.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Optional deblur via deconvolution<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\"># Simple illustrative Wiener deconvolution for mild motion blur<\/span>\nfrom skimage.restoration import wiener\n\ndef motion_psf(length=<span class=\"hljs-number\">9<\/span>, angle=<span class=\"hljs-number\">0<\/span>):\n\u00a0 \u00a0 psf = np.zeros((length, length))\n\u00a0 \u00a0 psf&#91;length <span class=\"hljs-comment\">\/\/ 2, :] = 1<\/span>\n\u00a0 \u00a0 psf \/= psf.sum()\n\u00a0 \u00a0 <span class=\"hljs-keyword\">return<\/span> psf\n\nimgf = img_as_float(cv.cvtColor(restored, cv.COLOR_BGR2GRAY))\npsf = motion_psf(length=<span class=\"hljs-number\">9<\/span>)\ndeblur = wiener(imgf, psf, balance=<span class=\"hljs-number\">0.01<\/span>)\ndeblur_u8 = (np.clip(deblur, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">1<\/span>) * <span class=\"hljs-number\">255<\/span>).astype(<span class=\"hljs-string\">\"uint8\"<\/span>)\nmerged = cv.cvtColor(deblur_u8, cv.COLOR_GRAY2BGR)\ncv.imwrite(<span class=\"hljs-string\">\"restored_deblur.png\"<\/span>, merged)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">4) Finishing passes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use gentle contrast and color balance adjustments after repair.<\/li>\n\n\n\n<li>Retain a 16-bit PNG or TIFF for the master, then create delivery JPGs at appropriate sizes.<\/li>\n\n\n\n<li>Keep file size efficient for the web with formats and compression that preserve detail. See this guide on <a href=\"https:\/\/cloudinary.com\/guides\/image-effects\/how-to-reduce-image-file-size\">how to reduce image file size<\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Enhance and deliver with Cloud capabilities<\/h3>\n\n\n\n<p>Once you have a solid master, you can offload enhancement and delivery to Cloudinary. For example, you can apply on-the-fly improvements like auto contrast, noise reduction, sharpening, and format optimization using a simple URL transformation:<\/p>\n\n\n\n<p><code>https:\/\/res.cloudinary.com\/&lt;cloud_name>\/image\/upload\/<br>\u00a0 e_improve\/e_noise_reduction:50\/e_sharpen,q_auto,f_auto,w_1600\/&lt;public_id>.png<\/code><\/p>\n\n\n\n<p>If you prefer a quick visual tool for upscaling, try the <a href=\"https:\/\/cloudinary.com\/tools\/image-upscale\">Image Upscale tool<\/a>. You can also keep your archival master intact and generate multiple versions on demand, sized for web, email, or print previews without re-editing the original.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TL;DR<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scan cleanly at high resolution and keep a 16-bit PNG or TIFF master.<\/li>\n\n\n\n<li>Restore in order: color balance, denoise, inpaint scratches, then mild sharpening.<\/li>\n\n\n\n<li>Automate the boring parts with OpenCV and scikit-image.<\/li>\n\n\n\n<li>Use cloud transformations to enhance and deliver optimized versions without touching your master.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Learn More<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/cloudinary.com\/background-remover\">Background Remover<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/tools\/tiff-to-jpg\">TIFF to JPG<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/tools\/image-to-png\">Image to PNG<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/tools\/convert-image-to-black-and-white\">Convert image to black and white<\/a><\/li>\n<\/ul>\n\n\n\n<p>Ready to streamline restoration, optimization, and delivery for your photos and scans? <a href=\"https:\/\/cloudinary.com\/users\/register_free\">Sign up for a free Cloudinary account<\/a> and start transforming images on the fly while keeping your masters safe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from Photoshop healing brushes to Python inpainting. Question: I found a box of old photos, and several are torn, faded, and covered with scratches. I can scan them, but I want to [&hellip;]<\/p>\n","protected":false},"author":88,"featured_media":39171,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[423],"class_list":["post-39170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-questions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How do I restore a damaged photo?<\/title>\n<meta name=\"description\" content=\"Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do I restore a damaged photo?\" \/>\n<meta property=\"og:description\" content=\"Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-07T13:44:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-07T13:44:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"damjanantevski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\"},\"author\":{\"name\":\"damjanantevski\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/43592e43c12520a1e867d456b1e8cf7e\"},\"headline\":\"How do I restore a damaged photo?\",\"datePublished\":\"2025-11-07T13:44:29+00:00\",\"dateModified\":\"2025-11-07T13:44:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\"},\"wordCount\":499,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA\",\"keywords\":[\"Questions\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\",\"url\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\",\"name\":\"How do I restore a damaged photo?\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA\",\"datePublished\":\"2025-11-07T13:44:29+00:00\",\"dateModified\":\"2025-11-07T13:44:30+00:00\",\"description\":\"Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do I restore a damaged photo?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/43592e43c12520a1e867d456b1e8cf7e\",\"name\":\"damjanantevski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3b40c995531fe4d510212a06c9d4fc666d2cb8efbfebc98a94191701accf4817?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3b40c995531fe4d510212a06c9d4fc666d2cb8efbfebc98a94191701accf4817?s=96&d=mm&r=g\",\"caption\":\"damjanantevski\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How do I restore a damaged photo?","description":"Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/","og_locale":"en_US","og_type":"article","og_title":"How do I restore a damaged photo?","og_description":"Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from","og_url":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/","og_site_name":"Cloudinary Blog","article_published_time":"2025-11-07T13:44:29+00:00","article_modified_time":"2025-11-07T13:44:30+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA","type":"image\/jpeg"}],"author":"damjanantevski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/"},"author":{"name":"damjanantevski","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/43592e43c12520a1e867d456b1e8cf7e"},"headline":"How do I restore a damaged photo?","datePublished":"2025-11-07T13:44:29+00:00","dateModified":"2025-11-07T13:44:30+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/"},"wordCount":499,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA","keywords":["Questions"],"inLanguage":"en-US","copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/","url":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/","name":"How do I restore a damaged photo?","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA","datePublished":"2025-11-07T13:44:29+00:00","dateModified":"2025-11-07T13:44:30+00:00","description":"Old family prints, film scans, or legacy JPEGs often arrive with scratches, dust, fading, and blur. In community threads, folks swap tips ranging from","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-do-i-restore-a-damaged-photo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How do I restore a damaged photo?"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/43592e43c12520a1e867d456b1e8cf7e","name":"damjanantevski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3b40c995531fe4d510212a06c9d4fc666d2cb8efbfebc98a94191701accf4817?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3b40c995531fe4d510212a06c9d4fc666d2cb8efbfebc98a94191701accf4817?s=96&d=mm&r=g","caption":"damjanantevski"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1762523017\/how_do_i_restore_a_damaged_photo_featured_image\/how_do_i_restore_a_damaged_photo_featured_image.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/88"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=39170"}],"version-history":[{"count":1,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39170\/revisions"}],"predecessor-version":[{"id":39172,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39170\/revisions\/39172"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/39171"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=39170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=39170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=39170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}