Lines Matching full:picture
306 // Dumps a picture as a PGM file using the IMC4 layout.
307 static int DumpPicture(const WebPPicture* const picture, const char* PGM_name) { in DumpPicture() argument
309 const int uv_width = (picture->width + 1) / 2; in DumpPicture()
310 const int uv_height = (picture->height + 1) / 2; in DumpPicture()
311 const int stride = (picture->width + 1) & ~1; in DumpPicture()
312 const uint8_t* src_y = picture->y; in DumpPicture()
313 const uint8_t* src_u = picture->u; in DumpPicture()
314 const uint8_t* src_v = picture->v; in DumpPicture()
315 const uint8_t* src_a = picture->a; in DumpPicture()
317 WebPPictureHasTransparency(picture) ? picture->height : 0; in DumpPicture()
318 const int height = picture->height + uv_height + alpha_height; in DumpPicture()
322 for (y = 0; y < picture->height; ++y) { in DumpPicture()
323 if (fwrite(src_y, picture->width, 1, f) != 1) return 0; in DumpPicture()
324 if (picture->width & 1) fputc(0, f); // pad in DumpPicture()
325 src_y += picture->y_stride; in DumpPicture()
330 src_u += picture->uv_stride; in DumpPicture()
331 src_v += picture->uv_stride; in DumpPicture()
334 if (fwrite(src_a, picture->width, 1, f) != 1) return 0; in DumpPicture()
335 if (picture->width & 1) fputc(0, f); // pad in DumpPicture()
336 src_a += picture->a_stride; in DumpPicture()
418 const WebPPicture* const picture, in WriteWebPWithMetadata() argument
484 ok = ok && WriteLE24(out, picture->width - 1); in WriteWebPWithMetadata()
485 ok = ok && WriteLE24(out, picture->height - 1); in WriteWebPWithMetadata()
510 static int ProgressReport(int percent, const WebPPicture* const picture) { in ProgressReport() argument
512 (char*)picture->user_data, percent); in ProgressReport()
543 printf(" default, photo, picture,\n"); in HelpLong()
574 printf(" -crop <x> <y> <w> <h> .. crop picture with the given rectangle\n"); in HelpLong()
575 printf(" -resize <w> <h> ........ resize picture (*after* any cropping)\n"); in HelpLong()
599 printf(" one of: photo, picture or graph\n"); in HelpLong()
636 "BAD_DIMENSION: Bad picture dimension. Maximum width and height "
644 "BAD_WRITE: Picture writer returned an I/O error",
668 WebPPicture picture; in main() local
682 if (!WebPPictureInit(&picture) || in main()
719 picture.width = ExUtilGetInt(argv[++c], 0, &parse_error); in main()
720 picture.height = ExUtilGetInt(argv[++c], 0, &parse_error); in main()
721 if (picture.width > WEBP_MAX_DIMENSION || picture.width < 0 || in main()
722 picture.height > WEBP_MAX_DIMENSION || picture.height < 0) { in main()
725 picture.width, picture.height); in main()
774 } else if (!strcmp(argv[c], "picture")) { in main()
820 picture.extra_info_type = ExUtilGetInt(argv[++c], 0, &parse_error); in main()
854 } else if (!strcmp(argv[c], "picture")) { in main()
972 picture.use_argb = (config.lossless || config.use_sharp_yuv || in main()
978 if (!ReadPicture(in_file, &picture, keep_alpha, in main()
980 WFPRINTF(stderr, "Error! Cannot read input picture file '%s'\n", in main()
984 picture.progress_hook = (show_progress && !quiet) ? ProgressReport : NULL; in main()
987 WebPBlendAlpha(&picture, background_color); in main()
997 // 'picture' but not the lossless pipeline). in main()
1017 picture.writer = WebPMemoryWrite; in main()
1018 picture.custom_ptr = (void*)&memory_writer; in main()
1020 picture.writer = MyWriter; in main()
1021 picture.custom_ptr = (void*)out; in main()
1026 picture.writer = WebPMemoryWrite; in main()
1027 picture.custom_ptr = (void*)&memory_writer; in main()
1035 picture.stats = &stats; in main()
1036 picture.user_data = (void*)in_file; in main()
1045 if (!WebPPictureView(&picture, crop_x, crop_y, crop_w, crop_h, &picture)) { in main()
1046 fprintf(stderr, "Error! Cannot crop picture\n"); in main()
1057 if (!WebPPictureCopy(&picture, &picture_no_alpha)) { in main()
1058 fprintf(stderr, "Error! Cannot copy temporary picture\n"); in main()
1062 // We enforced picture.use_argb = 1 above. Now, remove the alpha values. in main()
1075 fprintf(stderr, "Error! Cannot resize temporary picture\n"); in main()
1080 if (!WebPPictureRescale(&picture, resize_w, resize_h)) { in main()
1081 fprintf(stderr, "Error! Cannot resize picture\n"); in main()
1088 uint32_t* argb = picture.argb; in main()
1094 argb += picture.argb_stride; in main()
1101 fprintf(stderr, "Time to crop/resize picture: %.3fs\n", preproc_time); in main()
1104 if (picture.extra_info_type > 0) { in main()
1105 AllocExtraInfo(&picture); in main()
1107 // Save original picture for later comparison. Only for lossy as lossless does in main()
1108 // not modify 'picture' (even near-lossless). in main()
1110 !WebPPictureCopy(&picture, &original_picture)) { in main()
1111 fprintf(stderr, "Error! Cannot copy temporary picture\n"); in main()
1119 if (!WebPEncode(&config, &picture)) { in main()
1120 fprintf(stderr, "Error! Cannot encode picture as WebP\n"); in main()
1122 picture.error_code, kErrorMessages[picture.error_code]); in main()
1127 fprintf(stderr, "Time to encode picture: %.3fs\n", encode_time); in main()
1134 // of 'picture' by copying all members except the freeable pointers. in main()
1135 original_picture = picture; in main()
1139 // to 'picture'; save the 'original_picture' beforehand. in main()
1141 original_picture = picture; in main()
1142 if (!WebPPictureInit(&picture)) { // Do not free 'picture'. in main()
1147 picture.use_argb = 1; in main()
1149 memory_writer.mem, memory_writer.size, &picture, in main()
1153 fprintf(stderr, "Error code: %d (%s)\n", picture.error_code, in main()
1154 kErrorMessages[picture.error_code]); in main()
1157 picture.stats = original_picture.stats; in main()
1164 if (picture.use_argb) { in main()
1167 } else if (!DumpPicture(&picture, dump_file)) { in main()
1168 WFPRINTF(stderr, "Warning, couldn't dump picture %s\n", in main()
1174 !WriteWebPWithMetadata(out, &picture, &memory_writer, &metadata, in main()
1203 PrintExtraInfoLossless(&picture, short_output, in_file); in main()
1205 PrintExtraInfoLossy(&picture, short_output, config.low_memory, in_file); in main()
1208 if (!short_output && picture.extra_info_type > 0) { in main()
1209 PrintMapInfo(&picture); in main()
1214 if (!WebPPictureDistortion(&picture, &original_picture, in main()
1224 fprintf(stderr, "%7d %.4f\n", picture.stats->coded_size, values[4]); in main()
1235 WebPFree(picture.extra_info); in main()
1237 WebPPictureFree(&picture); in main()