diff --git a/include/libcamera/pixel_format.h b/include/libcamera/pixel_format.h
index 6727315..c4ae088 100644
--- a/include/libcamera/pixel_format.h
+++ b/include/libcamera/pixel_format.h
@@ -38,6 +38,8 @@ public:
 
 	std::string toString() const;
 
+	static PixelFormat fromString(const std::string &name);
+
 private:
 	uint32_t fourcc_;
 	uint64_t modifier_;
diff --git a/src/libcamera/pixel_format.cpp b/src/libcamera/pixel_format.cpp
index 14addb5..9b07781 100644
--- a/src/libcamera/pixel_format.cpp
+++ b/src/libcamera/pixel_format.cpp
@@ -130,4 +130,13 @@ std::string PixelFormat::toString() const
 	return info.name;
 }
 
+/**
+ * \brief Retrive pixel format corresponding to the string
+ * \return Pixel format
+ */
+PixelFormat PixelFormat::fromString(const std::string &name)
+{
+	return PixelFormatInfo::info(name).format;
+}
+
 } /* namespace libcamera */
