You can use Python to do that. Execute this script :
How to run a script in Blender
import bpy
def threedify(image_name, mask_color):
img = bpy.data.images.get(image_name)
if not img:
print(f"No image named {image_name} in memory")
return
# Get or create mesh
mesh = bpy.data.meshes.get(image_name)
if not mesh:
mesh = bpy.data.meshes.new(image_name)
mesh.clear_geometry()
# Get or create object
obj = bpy.data.objects.get(image_name)
if not obj:
obj = bpy.data.objects.new(image_name, object_data=mesh)
bpy.context.scene.collection.objects.link(obj)
# Fill verts, faces and colors
verts = []
faces = []
colors = []
img_width = img.size[0]
for i, col in enumerate(zip(*[iter(img.pixels)]*4)):
if col == mask_color:
continue
x, y = i % img_width, i // img_width
verts.extend(((x - 0.5, y - 0.5, 0), (x + 0.5, y - 0.5, 0), (x + 0.5, y + 0.5, 0), (x - 0.5, y + 0.5, 0)))
verts_amount = len(verts)
colors.extend((col,)*4)
faces.append((verts_amount - 4, verts_amount - 3, verts_amount - 2, verts_amount - 1))
mesh.from_pydata(verts, (), faces)
# Add modifiers
obj.modifiers.clear()
solid = obj.modifiers.new(type='SOLIDIFY', name="solid")
solid.thickness = 0.5
bvl = obj.modifiers.new(type='BEVEL', name="bvl")
# Set vertex colors
mode = bpy.context.active_object.mode
if not obj.data.vertex_colors:
obj.data.vertex_colors.new(name="vcols")
vcols = obj.data.vertex_colors.get("vcols")
if vcols is None:
vcols = obj.data.vertex_colors.new(name="vcols")
for i, vcol in enumerate(vcols.data):
vcol.color = colors[i]
bpy.ops.object.mode_set(mode=mode)
if __name__ == "__main__":
threedify("arrow.png", mask_color=(1, 0, 1, 1))
In a nutshell, this scripts iterates over all the pixels of an image which needs to be loaded in memory (case-sensitive), then recreates a mesh with 1 square face = 1 pixel from this image. The important thing is that the base image must have an exact mask color. I used this one made rapidly in paint with a mask key of (Red = 1, Green = 0, Blue = 1, Alpha = 1):

Result (Make sure to enable Vertex color mode) :


With your example - Make sure to replace the last line with
threedify("cbNd2.png", mask_color=(0, 0, 0, 0))
The result is not the same as in your question because your image is actually 72*96 pixels.

Warning : This will likely crash blender or hang your PC for non-pixel-art images.
You can then tweak the modifiers to fine tune the effect.

If you want to actually see it in material preview or rendered view, here is a minimal working example of a shader tree :

Add some lighting, and voilà :
