点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我使用IGS类将PNG图像转换为BMP。 它工作正常。 当我使用FM'SAPSCRIPT_CONVERT_BITMAP_BDS'将BMP转换为BDS(用于在SE78中上载)时,会出现问题。 我收到一个shordump:
运行时错误:COMPUTE_INT_TIMES_OVERFLOW
异常:CX_SY_ARITHMETIC_OVERFLOW
我知道问题在于DPI值的计算值太大,但是我不知道是什么原因造成的。 最后是这种情况:当我运行一次时,所有程序都运行良好。 但是总是在第二次执行时,我会收到shordump。
以下是将PNG转换为BMP的例程:
使用p_width形成convert_image
p_height
p_content_length。
创建对象i_igs_image_converter。
i_igs_image_converter-> input ='image/png'。
i_igs_image_converter-> output ='image/x-ms-bmp'。
i_igs_image_converter-> width = p_width。
i_igs_image_converter-> height = p_height。
调用方法i_igs_image_converter-> set_image
导出
blob = mime
blob_size = p_content_length。
调用方法i_igs_image_converter->执行
例外情况
communication_error = 1
internal_error = 2
external_error = 3
其他= 4。
如果sy-subrc = 0。
调用方法i_igs_image_converter-> get_image
导入
blob = blob
blob_size = blob_size
blob_type = blob_type。
l_bytecount = blob_size。
ENDIF。
ENDFORM。
以下是将此BMP传递给函数的例程:
*位图转换
调用功能'SAPSCRIPT_CONVERT_BITMAP_BDS'
导出
color ='X'
format = p_format" BMP
居民= p_resident"''
bitmap_bytecount = l_bytecount
* compress_bitmap = p_bmcomp
导入
width_tw = l_width_tw
height_tw = l_height_tw
width_pix = l_width_pix
height_pix = l_height_pix
dpi = p_resolution
bds_bytecount = l_bds_bytecount
表格
bitmap_file = p_blob
bitmap_file_bds = l_bds_content
例外情况
format_not_supported = 1
no_bmp_file = 2
bmperr_invalid_format = 3
bmperr_no_colortable = 4
bmperr_unsup_compression = 5
bmperr_corrupt_rle_data = 6
其他= 7。
以下是导致程序崩溃的标准程序的一部分:
ABAP类别编程错误
运行时错误COMPUTE_INT_TIMES_OVERFLOW
除外。 CX_SY_ARITHMETIC_OVERFLOW
ABAP程序SAPLSTXBITMAPS
应用程序组件BC-SRV-SCR
1946年*每米Y像素
1947执行bmptab_getlong_ofs表的位图文件
1948年,使用ofs bmp_ypelspermeter。
1949 *使用的颜色
1950执行bmptab_getdword_ofs表的位图文件
1951年使用ofs单词。
1952年*颜色很重要
1953年执行bmptab_getdword_ofs表的位图文件
1954年使用ofs单词。
1955 ofs_rgbquad = ofs_bitmapinfoheader + bmp_bisize。
1956 *现在我们有了OFS_RGBQUAD->色表
1957 * OFS_BITMAPDATA->位图字节
1958年otf_bminfo-new_rd_format = c_false。
1959年otf_bminfo-is_resident = c_false。
>>>>> otf_bminfo-dpi =(bmp_xpelspermeter * 100)/3937。
1961使用otf_bminfo-dpi执行bmp_adjust_dpi。
1962 otf_bminfo-w_pix = bmp_width。
1963 otf_bminfo-h_pix = abs(bmp_height)。
1964 otf_bminfo-w_tw =(1440 * otf_bminfo-w_pix)/otf_bminfo-dpi。
1965 otf_bminfo-h_tw =(1440 * otf_bminfo-h_pix)/otf_bminfo-dpi。
1966年的案件bmp_bitcount。
1967年1点。
1968 otf_bminfo-bitsperpix = 1。
1969 otf_bminfo-bytes_per_row = otf_bminfo-w_pix div 8。
1970 rest = otf_bminfo-w_pix mod 8。
1971年,当时为4。
谢谢。
嗨,
为简化起见,请发布整个代码和图像。 表单例程(使用看起来像* squints * ... 5个全局变量)已经看起来很糟糕:|
有一个相对较新的OSS注释,它与IGS PNG转换有关:2042588-IMGCONV:转换某些PNG图像时"图像数据损坏"
欢呼声
贾尼斯(Jānis)
我遇到了同样的错误,就我而言,问题出在图像尺寸上。
我调整了图像的大小并上传了它,它对我有用。
嗨,
如果您可以看到.png的话,那么我 会尝试验证IGS是否会从中创建"正确的" .bmp。 如果没有(如果它在QAS上有效),我将要求Basis调查问题(IGS是否最新等)。 如果.bmp也可以,我将其写到光盘上,看看是否可以在740 SP 09上以SE78
Btw上传时重现该问题,SAP终于添加了对QR码的支持< a hraf=" http://service.sap.com/sap/support/notes/2030263"> 2030263-支持SAPscript和智能表单中的QR Code 2005条码
欢呼声
Janis
一周热门 更多>