MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / scale_image

Function scale_image

src/doc/algorithm/rotate.cpp:108–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106};
107
108void scale_image(Image* dst, const Image* src,
109 int dst_x, int dst_y, int dst_w, int dst_h,
110 int src_x, int src_y, int src_w, int src_h)
111{
112 gfx::Clip clip(dst_x, dst_y, src_x, src_y, dst_w, dst_h);
113 if (src_w == dst_w && src_h == dst_h) {
114 dst->copy(src, clip);
115 return;
116 }
117
118 if (!clip.clip(dst->width(), dst->height(), src->width(), src->height()))
119 return;
120
121 switch (dst->pixelFormat()) {
122
123 case IMAGE_RGB:
124 image_scale_tpl<RgbTraits>(
125 dst, src,
126 dst_x, dst_y, dst_w, dst_h,
127 src_x, src_y, src_w, src_h, rgba_blender);
128 break;
129
130 case IMAGE_GRAYSCALE:
131 image_scale_tpl<GrayscaleTraits>(
132 dst, src,
133 dst_x, dst_y, dst_w, dst_h,
134 src_x, src_y, src_w, src_h, grayscale_blender);
135 break;
136
137 case IMAGE_INDEXED:
138 image_scale_tpl<IndexedTraits>(
139 dst, src,
140 dst_x, dst_y, dst_w, dst_h,
141 src_x, src_y, src_w, src_h, if_blender(src->maskColor()));
142 break;
143
144 case IMAGE_BITMAP:
145 image_scale_tpl<BitmapTraits>(
146 dst, src,
147 dst_x, dst_y, dst_w, dst_h,
148 src_x, src_y, src_w, src_h, if_blender(0));
149 break;
150 }
151}
152
153void rotate_image(Image* dst, const Image* src, int x, int y, int w, int h,
154 int cx, int cy, double angle)

Callers 2

loadBgThreadMethod · 0.85
rotsprite_imageFunction · 0.85

Calls 7

if_blenderClass · 0.85
clipMethod · 0.80
copyMethod · 0.45
widthMethod · 0.45
heightMethod · 0.45
pixelFormatMethod · 0.45
maskColorMethod · 0.45

Tested by

no test coverage detected