|
@@ -0,0 +1,52 @@
|
|
|
+#include "image_lib.h"
|
|
|
+#include "image_interface.h"
|
|
|
+#include <stdio.h>
|
|
|
+#include <stdlib.h>
|
|
|
+
|
|
|
+typedef struct Jpg
|
|
|
+{
|
|
|
+ Image base;
|
|
|
+ char* type;
|
|
|
+} Jpg;
|
|
|
+
|
|
|
+// 具体操作函数
|
|
|
+
|
|
|
+static int jpg_zoom_in(Image* image, double scale) {
|
|
|
+ Jpg* self = (Jpg*)image;
|
|
|
+ printf("Zooming in by %f on jpg: %s\n", scale, self->type);
|
|
|
+ return 0; // 返回成功
|
|
|
+}
|
|
|
+
|
|
|
+static int jpg_zoom_out(Image* image, double scale) {
|
|
|
+ Jpg* self = (Jpg*)image;
|
|
|
+ printf("Zooming out by %f on jpg: %s\n", scale, self->type);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static int jpg_convert_format(Image* image, const char* new_format) {
|
|
|
+ Jpg* self = (Jpg*)image;
|
|
|
+ printf("Converting jpg: %s to format: %s\n", self->type, new_format);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static void jpg_destroy(Image* image) {
|
|
|
+ Jpg* self = (Jpg*)image;
|
|
|
+ if (self) {
|
|
|
+ printf("Destroying : %s\n", self->type);
|
|
|
+ free(self); // 释放内部结构体的内存
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+Image* jpg_create(const char* file_path) {
|
|
|
+ Jpg* jpg = (Jpg*)malloc(sizeof(Jpg));
|
|
|
+ if (jpg == NULL) {
|
|
|
+ printf("Failed to allocate memory for jpg\n");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+ jpg->base.destroy = jpg_destroy;
|
|
|
+ jpg->base.zoom_in = jpg_zoom_in;
|
|
|
+ jpg->base.zoom_out = jpg_zoom_out;
|
|
|
+ jpg->base.convert_format = jpg_convert_format;
|
|
|
+ jpg->type = "jpg";
|
|
|
+ return (Image*)jpg;
|
|
|
+}
|