1745 h_samp1 = cinfo->comp_info[1].h_samp_factor; 1746 h_samp2 = cinfo->comp_info[2].h_samp_factor; 1747 1748 v_samp0 = cinfo->comp_info[0].v_samp_factor; 1749 v_samp1 = cinfo->comp_info[1].v_samp_factor; 1750 v_samp2 = cinfo->comp_info[2].v_samp_factor; 1751 1752 cid0 = cinfo->comp_info[0].component_id; 1753 cid1 = cinfo->comp_info[1].component_id; 1754 cid2 = cinfo->comp_info[2].component_id; 1755 1756 if ((!(cid0 == 1 && cid1 == 2 && cid2 == 3)) && 1757 ((h_samp1 == h_samp0) && (h_samp2 == h_samp0) && 1758 (v_samp1 == v_samp0) && (v_samp2 == v_samp0))) 1759 { 1760 cinfo->jpeg_color_space = JCS_RGB; 1761 /* output is already RGB, so it stays the same */ 1762 } 1763 } 1764 break; 1765 #ifdef YCCALPHA 1766 case JCS_YCC: 1767 cinfo->out_color_space = JCS_YCC; 1768 break; 1769 #endif 1770 case JCS_YCCK: 1771 if ((cinfo->saw_Adobe_marker) && (cinfo->Adobe_transform != 2)) { 1772 /* 1773 * IJG guesses this is YCCK and emits a warning 1774 * We would rather not guess. Then the user knows 1775 * To read this as a Raster if at all 1776 */ 1777 cinfo->jpeg_color_space = JCS_UNKNOWN; 1778 cinfo->out_color_space = JCS_UNKNOWN; 1779 } 1780 break; 1781 case JCS_CMYK: 1782 /* 1783 * IJG assumes all unidentified 4-channels are CMYK. 1784 * We assume that only if the second two channels are 1785 * not subsampled (either horizontally or vertically). 1786 * If they are, we assume YCCK. 1787 */ 1788 h_samp0 = cinfo->comp_info[0].h_samp_factor; 1789 h_samp1 = cinfo->comp_info[1].h_samp_factor; | 1745 h_samp1 = cinfo->comp_info[1].h_samp_factor; 1746 h_samp2 = cinfo->comp_info[2].h_samp_factor; 1747 1748 v_samp0 = cinfo->comp_info[0].v_samp_factor; 1749 v_samp1 = cinfo->comp_info[1].v_samp_factor; 1750 v_samp2 = cinfo->comp_info[2].v_samp_factor; 1751 1752 cid0 = cinfo->comp_info[0].component_id; 1753 cid1 = cinfo->comp_info[1].component_id; 1754 cid2 = cinfo->comp_info[2].component_id; 1755 1756 if ((!(cid0 == 1 && cid1 == 2 && cid2 == 3)) && 1757 ((h_samp1 == h_samp0) && (h_samp2 == h_samp0) && 1758 (v_samp1 == v_samp0) && (v_samp2 == v_samp0))) 1759 { 1760 cinfo->jpeg_color_space = JCS_RGB; 1761 /* output is already RGB, so it stays the same */ 1762 } 1763 } 1764 break; 1765 case JCS_YCCK: 1766 if ((cinfo->saw_Adobe_marker) && (cinfo->Adobe_transform != 2)) { 1767 /* 1768 * IJG guesses this is YCCK and emits a warning 1769 * We would rather not guess. Then the user knows 1770 * To read this as a Raster if at all 1771 */ 1772 cinfo->jpeg_color_space = JCS_UNKNOWN; 1773 cinfo->out_color_space = JCS_UNKNOWN; 1774 } 1775 break; 1776 case JCS_CMYK: 1777 /* 1778 * IJG assumes all unidentified 4-channels are CMYK. 1779 * We assume that only if the second two channels are 1780 * not subsampled (either horizontally or vertically). 1781 * If they are, we assume YCCK. 1782 */ 1783 h_samp0 = cinfo->comp_info[0].h_samp_factor; 1784 h_samp1 = cinfo->comp_info[1].h_samp_factor; |