Automatically convert base64 images on paste

Follows from discussion here: Discord

Related:

Use case or problem

Some ‘copy sources’ of image data don’t use the proper DataObject format (see: c# - Adding Image with url to clipboard - Stack Overflow), but instead an HTML fragment. Examples of this appear to include OneNote, Clipt, and EverNote.

In these cases images are embedded using ![](BASE64 IMAGE DATA) which badly pollutes the markdown file and is not desired in most cases.

Ideally these cases would be handled similarly to good image pastes, which put the image into the configured attachment folder and reference it with an embed like ![[image...]].

Using clipboard inspector:

Bad image:

<html>
<body>
<!--StartFragment--><img src="data:image/jpeg;base64,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gJVHkUpSXGejOGHLeR3fhV26WGiuozK3D+0N/Xn16YXVIEOAIIIO4IRc/crvERinLIxUsc/4vZW6A26scSGDpG/mz23b2Vv8ss9cLZoxMioKv4O66avttWQybvw+jx/H7gK70d0gq/dB1Xcj6c1jt10crbXl5GvH2h6jh9O9bTi3Bdkx1a3W6+26G40p1LRKPmYeXExw3ae4IKjnC/hUwDhm7fHmkqrs9ruKOG5StlijP8A0B393EpgRd8lNDK4PewEjuULDcKumjMMMrmtO8AlfjGNjY1rWhrWjQNA0AC/VjMRYmtWEbXJcbzXwW6ij5zTv4QT0A5k9hqSqu5p+MWpq/Ot+CYDSQ7tN1qmAyO7xxnZvu7U78gV41VbBRjMrtvLiuq3Wisuj8U7NnFx2AdfQZKsRmBmrhrLKh+IvlwZDK5pMVHF89RN/FnT01Og6kKo+afioxLjnzqGzl2HbO7VpbA//AFEo+uQch2bpzIJcobuVzrLzXTVtfVTVtXM7iknqJC97z1JO5XzKk1l4nqctZ7re7f1K1+1aLUdvxJN8STmdw8B6nPRCdTqdyiIoFXVERERERERERERERERERERERERERERERERERERF5QzSU8rJYnujlY4Oa9h0c0jcEH0K8URFP2WPi5v+FY46HEsLsRW9o4W1Bfw1UY7uO0n92/1LdsW+Nm3i3OZhmxVTq57dBLdOFkcZ68LHOLv8tVS0Usy61ccfsw/Z5/NVibRq1zTe3dFt5AkA9As7jHHV9x9dDcL9cprhUbhgedGRjoxo2aOwCwSIotznPJc45JVjjjZE0MjAAG4DYEREXyvRERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERf//Z" style="color: rgb(0, 0, 0); font-family: &quot;Segoe UI&quot;, Tahoma, sans-serif; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><!--EndFragment-->
</body>
</html>

Good image:

Use case or problem

I am annotating YouTube videos and trying to import my notes. These sometimes include embedded images - screen grabs. These display in the markdown as something like…

![Zozc!3.x_ZS of(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBBAODg0ODQ0OEA0ODQ0ODQ4NEA8NDQ8NDw0NDR...

These display properly BUT they make editing the markdown IMPOSSIBLE because the markdown is completely overwhelmed by thousands of bytes of this stuff. The entire visible page is a continuous stream of bytes. This is what it looks like to me…

https://1drv.ms/u/s!AjaZ-t3uLVN_0N1316E8WdE--pdEXQ?e=i3Trng

Proposed solution

Few ideas:

  • Plug-in to export these embedded images into an “images” folder and replace embedded data with local link.
  • Format the markdown of these images (or any really long link) so they are collapsed by default. Don’t like the markdown files being huge though.
  • Preferred option is a built-in converter, not a plug-in, that notices these situations upon paste and offers to move the embedded images into another folder. Also when an image is embedded and you are previewing it, show a menu button near the image for “export this image” and “export all images in file”.

Current workaround (optional)

Delete the images

Related feature requests (optional)

5 Likes

+1 for this.

It would be awesome if links were shown as the title only, but when the cursor is inside the link, expand to show the full URL. Bear does this in a similar way and it keeps the markup looking very clean.

How do you even capture and embed them as base64? I mean not how to use the data object instead of a link, but what is your workflow to easily capture screengrabs from a video as a base64-encoded string?

This happens to me when pasting from OneNote.

I am bumping into this issue as well. My usecase is when working with charts in Google Sheets, downloading the chart as a PNG results in a horrible resolution. Clicking ‘copy chart’ and pasting the image gives a much better resolution but in Obsidian it results in a base-64 encoded link which totally kills the editing experience.

Copied files into vault from previous note systems (possibly TwiddlyWiki or Joplin).

:index_pointing_up: A good workaround is to use pandoc to extract the images to files and replace the link with a ref to the created file.

You can try it following this example (from a vault directory):

pandoc --extract-media ./media/ -s ds3231_pinout.md -o ds3231_pinout-pandoc.md
  • the destination directory for image files (./media) is created if absent
  • the -s option ensures that enventual front matter is preserved

To run this command on my vault folders, I used ripgrep to select all md files and pipe the list to xargs(1) which handles the loop:

rg -l 'data:image' | xargs -i pandoc --extract-media ./media/ -s {} -o {}

If you don’t want to install ripgrep you should get the same output with GNU grep:

grep -l -e 'data:image' *md

Use case or problem

I tend to dump a lot of my Jupyter notebook figures to notes at obsidian to store partial results and explore possible interpretations of results. If one copies and pastes a figure from Jupyter into a note, typically it pastes something like:
![](data:image/png;base64,iVBO......(verylongstring)==)
A (verylongstring) can be hundreds or thousands of lines that completely disrupt the performance and manageability of the note editing.

Proposed solution

Collapsing the information inside data:image/png;base64 would be brilliant, it would allow users to embed figures while preserving the not layout and not having to attach figures. I propose something like:

Current workaround (optional)

Save the figure locally and attaching to the note

3 Likes

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.