ABAP
sap abap resize image
merhaba çok uzun bir aradan sonra abap ile ilgili bir paylaşım yapmak istedim. bu yazımda internette arayıp da bulamadığım bir abap kodunu paylaşacağım. abap ile bir resim dosyasını yeniden boyutlandırmanın (image resize) nasıl yapılacağını anlatacağım. bunu yaparken sap’nin image processor sınıfını kullanacağım. abap image resize için bize gereken sınıf; cl\fxs\image\processor. aşağıda verdiğim örnekte is\attachmedia\resource değişkeninde resmin binary datası bulunmakta. öncelikle oluşturduğumuz objeye resmi ekliyoruz. sonra eklenen resmin boyutlarını buluyoruz. resmin boyut oranını bozmamak için yeni resmin yüksekliği …
merhaba çok uzun bir aradan sonra abap ile ilgili bir paylaşım yapmak istedim. bu yazımda internette arayıp da bulamadığım bir abap kodunu paylaşacağım.
abap ile bir resim dosyasını yeniden boyutlandırmanın (image resize) nasıl yapılacağını anlatacağım. bunu yaparken sap’nin image processor sınıfını kullanacağım. abap image resize için bize gereken sınıf; cl_fxs_image_processor.
aşağıda verdiğim örnekte is_attach-media_resource değişkeninde resmin binary datası bulunmakta. öncelikle oluşturduğumuz objeye resmi ekliyoruz. sonra eklenen resmin boyutlarını buluyoruz. resmin boyut oranını bozmamak için yeni resmin yüksekliği (360) sabitleyip genişliğini hesaplıyoruz. daha sonra resmi yeniden boyutlandırıp yeni oluşan binary datasını çekiyoruz.
buyrun kodlarımız burada;
DATA: lo_image_processor TYPE REF TO cl_fxs_image_processor,
lv_handle TYPE i,
lv_converted_data TYPE xstring,
lv_orig_width TYPE i,
lv_orig_height TYPE i,
lv_width TYPE i,
lv_height TYPE i.
CREATE OBJECT lo_image_processor TYPE cl_fxs_image_processor.
TRY.
CALL METHOD lo_image_processor->add_image
EXPORTING
iv_data = is_attach-media_resource
* iv_image_name = lv_file_name
RECEIVING
rv_handle = lv_handle.
lv_width = 640.
lv_height = 360.
CALL METHOD lo_image_processor->get_info
EXPORTING
iv_handle = lv_handle
IMPORTING
* ev_mimetype =
ev_xres = lv_orig_width
ev_yres = lv_orig_height
* ev_xdpi =
* ev_ydpi =
* ev_bitdepth =
.
lv_width = lv_height * lv_orig_width / lv_orig_height.
CALL METHOD lo_image_processor->resize
EXPORTING
iv_handle = lv_handle
iv_xres = lv_width
iv_yres = lv_height.
CALL METHOD lo_image_processor->get_image
EXPORTING
iv_handle = lv_handle
RECEIVING
rv_xstring = lv_converted_data.
CATCH cx_fxs_image_unsupported .
lv_converted_data = is_attach-media_resource.
CATCH cx_sy_range_out_of_bounds .
lv_converted_data = is_attach-media_resource.
ENDTRY.