Lines Matching full:picture
312 // Dumps a picture as a PGM file using the IMC4 layout.
313 static int DumpPicture(const WebPPicture* const picture, const char* PGM_name) { in DumpPicture() argument
316 const int uv_width = (picture->width + 1) / 2; in DumpPicture()
317 const int uv_height = (picture->height + 1) / 2; in DumpPicture()
318 const int stride = (picture->width + 1) & ~1; in DumpPicture()
319 const uint8_t* src_y = picture->y; in DumpPicture()
320 const uint8_t* src_u = picture->u; in DumpPicture()
321 const uint8_t* src_v = picture->v; in DumpPicture()
322 const uint8_t* src_a = picture->a; in DumpPicture()
324 WebPPictureHasTransparency(picture) ? picture->height : 0; in DumpPicture()
325 const int height = picture->height + uv_height + alpha_height; in DumpPicture()
329 for (y = 0; y < picture->height; ++y) { in DumpPicture()
330 if (fwrite(src_y, picture->width, 1, f) != 1) goto Error; in DumpPicture()
331 if (picture->width & 1) fputc(0, f); // pad in DumpPicture()
332 src_y += picture->y_stride; in DumpPicture()
337 src_u += picture->uv_stride; in DumpPicture()
338 src_v += picture->uv_stride; in DumpPicture()
341 if (fwrite(src_a, picture->width, 1, f) != 1) goto Error; in DumpPicture()
342 if (picture->width & 1) fputc(0, f); // pad in DumpPicture()
343 src_a += picture->a_stride; in DumpPicture()
428 const WebPPicture* const picture, in WriteWebPWithMetadata() argument
494 ok = ok && WriteLE24(out, picture->width - 1); in WriteWebPWithMetadata()
495 ok = ok && WriteLE24(out, picture->height - 1); in WriteWebPWithMetadata()
520 static int ProgressReport(int percent, const WebPPicture* const picture) { in ProgressReport() argument
522 (char*)picture->user_data, percent); in ProgressReport()
553 printf(" default, photo, picture,\n"); in HelpLong()
584 printf(" -crop <x> <y> <w> <h> .. crop picture with the given rectangle\n"); in HelpLong()
585 printf(" -resize <w> <h> ........ resize picture (*after* any cropping)\n"); in HelpLong()
608 printf(" one of: photo, picture or graph\n"); in HelpLong()
645 "BAD_DIMENSION: Bad picture dimension. Maximum width and height "
653 "BAD_WRITE: Picture writer returned an I/O error",
678 WebPPicture picture; in main() local
692 if (!WebPPictureInit(&picture) || in main()
729 picture.width = ExUtilGetInt(argv[++c], 0, &parse_error); in main()
730 picture.height = ExUtilGetInt(argv[++c], 0, &parse_error); in main()
731 if (picture.width > WEBP_MAX_DIMENSION || picture.width < 0 || in main()
732 picture.height > WEBP_MAX_DIMENSION || picture.height < 0) { in main()
735 picture.width, picture.height); in main()
784 } else if (!strcmp(argv[c], "picture")) { in main()
830 picture.extra_info_type = ExUtilGetInt(argv[++c], 0, &parse_error); in main()
864 } else if (!strcmp(argv[c], "picture")) { in main()
982 picture.use_argb = (config.lossless || config.use_sharp_yuv || in main()
988 if (!ReadPicture(in_file, &picture, keep_alpha, in main()
990 WFPRINTF(stderr, "Error! Cannot read input picture file '%s'\n", in main()
994 picture.progress_hook = (show_progress && !quiet) ? ProgressReport : NULL; in main()
997 WebPBlendAlpha(&picture, background_color); in main()
1007 // 'picture' but not the lossless pipeline). in main()
1027 picture.writer = WebPMemoryWrite; in main()
1028 picture.custom_ptr = (void*)&memory_writer; in main()
1030 picture.writer = MyWriter; in main()
1031 picture.custom_ptr = (void*)out; in main()
1036 picture.writer = WebPMemoryWrite; in main()
1037 picture.custom_ptr = (void*)&memory_writer; in main()
1045 picture.stats = &stats; in main()
1046 picture.user_data = (void*)in_file; in main()
1055 if (!WebPPictureView(&picture, crop_x, crop_y, crop_w, crop_h, &picture)) { in main()
1056 fprintf(stderr, "Error! Cannot crop picture\n"); in main()
1067 if (!WebPPictureCopy(&picture, &picture_no_alpha)) { in main()
1068 fprintf(stderr, "Error! Cannot copy temporary picture\n"); in main()
1072 // We enforced picture.use_argb = 1 above. Now, remove the alpha values. in main()
1085 fprintf(stderr, "Error! Cannot resize temporary picture\n"); in main()
1090 if (!WebPPictureRescale(&picture, resize_w, resize_h)) { in main()
1091 fprintf(stderr, "Error! Cannot resize picture\n"); in main()
1098 uint32_t* argb = picture.argb; in main()
1104 argb += picture.argb_stride; in main()
1111 fprintf(stderr, "Time to crop/resize picture: %.3fs\n", preproc_time); in main()
1114 if (picture.extra_info_type > 0) { in main()
1115 AllocExtraInfo(&picture); in main()
1117 // Save original picture for later comparison. Only for lossy as lossless does in main()
1118 // not modify 'picture' (even near-lossless). in main()
1120 !WebPPictureCopy(&picture, &original_picture)) { in main()
1121 fprintf(stderr, "Error! Cannot copy temporary picture\n"); in main()
1129 if (!WebPEncode(&config, &picture)) { in main()
1130 fprintf(stderr, "Error! Cannot encode picture as WebP\n"); in main()
1132 picture.error_code, kErrorMessages[picture.error_code]); in main()
1137 fprintf(stderr, "Time to encode picture: %.3fs\n", encode_time); in main()
1144 // of 'picture' by copying all members except the freeable pointers. in main()
1145 original_picture = picture; in main()
1149 // to 'picture'; save the 'original_picture' beforehand. in main()
1151 original_picture = picture; in main()
1152 if (!WebPPictureInit(&picture)) { // Do not free 'picture'. in main()
1157 picture.use_argb = 1; in main()
1159 memory_writer.mem, memory_writer.size, &picture, in main()
1163 fprintf(stderr, "Error code: %d (%s)\n", picture.error_code, in main()
1164 kErrorMessages[picture.error_code]); in main()
1167 picture.stats = original_picture.stats; in main()
1174 if (picture.use_argb) { in main()
1177 } else if (!DumpPicture(&picture, dump_file)) { in main()
1178 WFPRINTF(stderr, "Warning, couldn't dump picture %s\n", in main()
1184 !WriteWebPWithMetadata(out, &picture, &memory_writer, &metadata, in main()
1213 PrintExtraInfoLossless(&picture, short_output, in_file); in main()
1215 PrintExtraInfoLossy(&picture, short_output, config.low_memory, in_file); in main()
1218 if (!short_output && picture.extra_info_type > 0) { in main()
1219 PrintMapInfo(&picture); in main()
1224 if (!WebPPictureDistortion(&picture, &original_picture, in main()
1234 fprintf(stderr, "%7d %.4f\n", picture.stats->coded_size, values[4]); in main()
1245 WebPFree(picture.extra_info); in main()
1247 WebPPictureFree(&picture); in main()