Handle PIXEL_TALL3 mode in file formats (GIF)
This commit is contained in:
		
							parent
							
								
									0285f37fc2
								
							
						
					
					
						commit
						8dfd6d6c97
					
				@ -3269,8 +3269,9 @@ void Load_picture(enum CONTEXT_TYPE type)
 | 
				
			|||||||
          ((context.Ratio == PIXEL_WIDE &&
 | 
					          ((context.Ratio == PIXEL_WIDE &&
 | 
				
			||||||
            Pixel_ratio != PIXEL_WIDE && Pixel_ratio != PIXEL_WIDE2) ||
 | 
					            Pixel_ratio != PIXEL_WIDE && Pixel_ratio != PIXEL_WIDE2) ||
 | 
				
			||||||
            (context.Ratio == PIXEL_TALL &&
 | 
					            (context.Ratio == PIXEL_TALL &&
 | 
				
			||||||
            Pixel_ratio != PIXEL_TALL && Pixel_ratio != PIXEL_TALL2 &&
 | 
					            Pixel_ratio != PIXEL_TALL && Pixel_ratio != PIXEL_TALL2) ||
 | 
				
			||||||
            Pixel_ratio != PIXEL_TALL3)))
 | 
					            (context.Ratio == PIXEL_TALL3 &&
 | 
				
			||||||
 | 
					            Pixel_ratio != PIXEL_TALL3) ))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          Init_mode_video(
 | 
					          Init_mode_video(
 | 
				
			||||||
            Video_mode[Current_resolution].Width,
 | 
					            Video_mode[Current_resolution].Width,
 | 
				
			||||||
 | 
				
			|||||||
@ -4087,12 +4087,19 @@ void Load_GIF(T_IO_Context * context)
 | 
				
			|||||||
        Original_screen_X=LSDB.Width;
 | 
					        Original_screen_X=LSDB.Width;
 | 
				
			||||||
        Original_screen_Y=LSDB.Height;
 | 
					        Original_screen_Y=LSDB.Height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (LSDB.Aspect==17)
 | 
					        switch(LSDB.Aspect) {
 | 
				
			||||||
           ratio=PIXEL_TALL;
 | 
					        case 17:  // (17 + 15) / 64 = 1:2
 | 
				
			||||||
        else if (LSDB.Aspect==113)
 | 
					          ratio=PIXEL_TALL;
 | 
				
			||||||
           ratio=PIXEL_WIDE;
 | 
					          break;
 | 
				
			||||||
        else
 | 
					        case 33:  // (33 + 15) / 64 = 3:4
 | 
				
			||||||
           ratio=PIXEL_SIMPLE;
 | 
					          ratio=PIXEL_TALL3;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case 113: // (113 + 15) / 64 = 2:1
 | 
				
			||||||
 | 
					          ratio=PIXEL_WIDE;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        default:
 | 
				
			||||||
 | 
					          ratio=PIXEL_SIMPLE;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Pre_load(context, LSDB.Width,LSDB.Height,file_size,FORMAT_GIF,ratio,(LSDB.Resol&7)+1);
 | 
					        Pre_load(context, LSDB.Width,LSDB.Height,file_size,FORMAT_GIF,ratio,(LSDB.Resol&7)+1);
 | 
				
			||||||
        context->Width=LSDB.Width;
 | 
					        context->Width=LSDB.Width;
 | 
				
			||||||
@ -4657,10 +4664,15 @@ void Save_GIF(T_IO_Context * context)
 | 
				
			|||||||
      switch(context->Ratio)
 | 
					      switch(context->Ratio)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        case PIXEL_TALL:
 | 
					        case PIXEL_TALL:
 | 
				
			||||||
          LSDB.Aspect = 17; // 1:2 
 | 
					        case PIXEL_TALL2:
 | 
				
			||||||
 | 
					          LSDB.Aspect = 17; // 1:2 = 2:4
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case PIXEL_TALL3:
 | 
				
			||||||
 | 
					          LSDB.Aspect = 33; // 3:4
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
        case PIXEL_WIDE:
 | 
					        case PIXEL_WIDE:
 | 
				
			||||||
          LSDB.Aspect = 113; // 2:1
 | 
					        case PIXEL_WIDE2:
 | 
				
			||||||
 | 
					          LSDB.Aspect = 113; // 2:1 = 4:2
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
          LSDB.Aspect = 0; // undefined, which is most frequent.
 | 
					          LSDB.Aspect = 0; // undefined, which is most frequent.
 | 
				
			||||||
 | 
				
			|||||||
@ -1288,12 +1288,7 @@ void Init_context_layered_image(T_IO_Context * context, char *file_name, char *f
 | 
				
			|||||||
  strcpy(context->Comment, Main.backups->Pages->Comment);
 | 
					  strcpy(context->Comment, Main.backups->Pages->Comment);
 | 
				
			||||||
  context->Transparent_color=Main.backups->Pages->Transparent_color;
 | 
					  context->Transparent_color=Main.backups->Pages->Transparent_color;
 | 
				
			||||||
  context->Background_transparent=Main.backups->Pages->Background_transparent;
 | 
					  context->Background_transparent=Main.backups->Pages->Background_transparent;
 | 
				
			||||||
  if (Pixel_ratio == PIXEL_WIDE || Pixel_ratio == PIXEL_WIDE2)
 | 
					  context->Ratio = Pixel_ratio;
 | 
				
			||||||
    context->Ratio=PIXEL_WIDE;
 | 
					 | 
				
			||||||
  else if (Pixel_ratio == PIXEL_TALL || Pixel_ratio == PIXEL_TALL2 || Pixel_ratio == PIXEL_TALL3)
 | 
					 | 
				
			||||||
    context->Ratio=PIXEL_TALL;
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    context->Ratio=PIXEL_SIMPLE;
 | 
					 | 
				
			||||||
  context->Target_address=Main.backups->Pages->Image[0].Pixels;
 | 
					  context->Target_address=Main.backups->Pages->Image[0].Pixels;
 | 
				
			||||||
  context->Pitch=Main.image_width;
 | 
					  context->Pitch=Main.image_width;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user