Ver Mensaje Individual
  #1
Antiguo 1 de abril de 2015, 17:13
Adrianeloy
Forero Junior
Última Actividad 24.11.2020 17:31
Posts Posts: 39
Likes enviados Enviados: 29
Likes recibidos Recibidos: 34

Comparto este programita que lee el ancho y alto de cualquier JPG, sin recurrir a bibliotecas, OCX ni API. Cambien el nombre del JPG en la FILE-CONTROL.

Código COBOL:
  1.  IDENTIFICATION  DIVISION.
  2.  PROGRAM-ID. "ANCHOYALTOJPG" COMMON.
  3.  ENVIRONMENT DIVISION.
  4.     INPUT-OUTPUT SECTION.
  5.  FILE-CONTROL.
  6.             SELECT OPTIONAL JOTAPEGE
  7.             LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD
  8.             ASSIGN TO "C:\IMAGEN.JPG".
  9.  DATA DIVISION.
  10.  FILE SECTION.
  11.   FD  JOTAPEGE.
  12.   01 CABEZAJPG PIC X(755).
  13.  
  14.  
  15.  WORKING-STORAGE SECTION.
  16.   77 CARACTER1 PIC X.
  17.   77 CONTANDO PIC 9(5).
  18.   01 CONVIERTEASCII.
  19.      05 VALORCARACTER2.
  20.         10 VALORCARACTER PIC X.
  21.         10 FILLER PIC XXX.
  22.      05 VALORDECIMALCOMP3 REDEFINES VALORCARACTER2 PIC 9(6) USAGE COMP-5.
  23.      05 VALORDECIMAL PIC 9(6).
  24.   77 BYTE1 PIC 9(6).
  25.   77 BYTE2 PIC 9(6).
  26.   77 ANCHOJPG PIC 9(6).
  27.   77 ALTOJPG PIC 9(6).
  28.  
  29.  
  30.  PROCEDURE DIVISION.
  31.  
  32.  
  33.      OPEN INPUT JOTAPEGE.
  34.      READ JOTAPEGE.
  35.      CLOSE JOTAPEGE.
  36.  
  37.      MOVE 120 TO CONTANDO.
  38.  BUSCACARACTER.
  39.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  40.      MOVE CARACTER1 TO VALORCARACTER.
  41.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  42.      IF VALORDECIMAL NOT = 255 GO SUBECAR.
  43.  
  44.      ADD 2 TO CONTANDO.
  45.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  46.      MOVE CARACTER1 TO VALORCARACTER.
  47.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  48.      IF VALORDECIMAL NOT = 0 GO SUBECAR.
  49.  
  50.      ADD 1 TO CONTANDO.
  51.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  52.      MOVE CARACTER1 TO VALORCARACTER.
  53.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  54.      IF VALORDECIMAL NOT = 17 GO SUBECAR.
  55.  
  56.      ADD 1 TO CONTANDO.
  57.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  58.      MOVE CARACTER1 TO VALORCARACTER.
  59.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  60.      IF VALORDECIMAL NOT = 8 GO SUBECAR.
  61.  
  62.      ADD 1 TO CONTANDO.
  63.      GO HALLECARACTER.
  64.  SUBECAR.
  65.      ADD 1 TO CONTANDO.
  66.      IF CONTANDO NOT = 755 GO BUSCACARACTER.
  67.  NOHAYNADA.
  68.      DISPLAY "ERROR: LA IMAGEN TIENE UN FORMATO JPG FUERA DEL STANDARD".
  69.      GO FIN.
  70.  HALLECARACTER.
  71.  
  72.  
  73.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  74.      MOVE CARACTER1 TO VALORCARACTER.
  75.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  76.      MOVE VALORDECIMAL TO BYTE1.
  77.  
  78.      ADD 1 TO CONTANDO.
  79.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  80.      MOVE CARACTER1 TO VALORCARACTER.
  81.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  82.      MOVE VALORDECIMAL TO BYTE2.
  83.  
  84.      COMPUTE ALTOJPG = BYTE1 * 256 + BYTE2.
  85.  
  86.      ADD 1 TO CONTANDO.
  87.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  88.      MOVE CARACTER1 TO VALORCARACTER.
  89.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  90.      MOVE VALORDECIMAL TO BYTE1.
  91.  
  92.      ADD 1 TO CONTANDO.
  93.      MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
  94.      MOVE CARACTER1 TO VALORCARACTER.
  95.      MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
  96.      MOVE VALORDECIMAL TO BYTE2.
  97.  
  98.      COMPUTE ANCHOJPG = BYTE1 * 256 + BYTE2.
  99.  
  100.      DISPLAY "ANCHO=" ANCHOJPG " ALTO=" ALTOJPG.
  101.  
  102.  
  103.  FIN.
  104.  END PROGRAM "ANCHOYALTOJPG".
Archivos Adjuntos
Tipo de Archivo: txt VERALTOYANCHOJPG.txt (2,8 KB)Descargas: 155
Adrianeloy is offline   Responder Con Cita