IDENTIFICATION DIVISION.
PROGRAM-ID. "ANCHOYALTOJPG" COMMON.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OPTIONAL JOTAPEGE
LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD
ASSIGN TO "C:\IMAGEN.JPG".
DATA DIVISION.
FILE SECTION.
FD JOTAPEGE.
01 CABEZAJPG PIC X(755).
WORKING-STORAGE SECTION.
77 CARACTER1 PIC X.
77 CONTANDO PIC 9(5).
01 CONVIERTEASCII.
05 VALORCARACTER2.
10 VALORCARACTER PIC X.
10 FILLER PIC XXX.
05 VALORDECIMALCOMP3 REDEFINES VALORCARACTER2 PIC 9(6) USAGE COMP-5.
05 VALORDECIMAL PIC 9(6).
77 BYTE1 PIC 9(6).
77 BYTE2 PIC 9(6).
77 ANCHOJPG PIC 9(6).
77 ALTOJPG PIC 9(6).
PROCEDURE DIVISION.
OPEN INPUT JOTAPEGE.
READ JOTAPEGE.
CLOSE JOTAPEGE.
MOVE 120 TO CONTANDO.
BUSCACARACTER.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
IF VALORDECIMAL NOT = 255 GO SUBECAR.
ADD 2 TO CONTANDO.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
IF VALORDECIMAL NOT = 0 GO SUBECAR.
ADD 1 TO CONTANDO.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
IF VALORDECIMAL NOT = 17 GO SUBECAR.
ADD 1 TO CONTANDO.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
IF VALORDECIMAL NOT = 8 GO SUBECAR.
ADD 1 TO CONTANDO.
GO HALLECARACTER.
SUBECAR.
ADD 1 TO CONTANDO.
IF CONTANDO NOT = 755 GO BUSCACARACTER.
NOHAYNADA.
DISPLAY "ERROR: LA IMAGEN TIENE UN FORMATO JPG FUERA DEL STANDARD".
GO FIN.
HALLECARACTER.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
MOVE VALORDECIMAL TO BYTE1.
ADD 1 TO CONTANDO.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
MOVE VALORDECIMAL TO BYTE2.
COMPUTE ALTOJPG = BYTE1 * 256 + BYTE2.
ADD 1 TO CONTANDO.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
MOVE VALORDECIMAL TO BYTE1.
ADD 1 TO CONTANDO.
MOVE CABEZAJPG (CONTANDO:1) TO CARACTER1.
MOVE CARACTER1 TO VALORCARACTER.
MOVE VALORDECIMALCOMP3 TO VALORDECIMAL.
MOVE VALORDECIMAL TO BYTE2.
COMPUTE ANCHOJPG = BYTE1 * 256 + BYTE2.
DISPLAY "ANCHO=" ANCHOJPG " ALTO=" ALTOJPG.
FIN.
END PROGRAM "ANCHOYALTOJPG".