Load_ClipBoard_Image() fix
lines are aligned on DWORD boundaries
This commit is contained in:
		
							parent
							
								
									7ce94604a3
								
							
						
					
					
						commit
						ec6d619efa
					
				@ -1273,7 +1273,9 @@ static void Load_ClipBoard_Image(T_IO_Context * context)
 | 
			
		||||
  if (clipboard != NULL)
 | 
			
		||||
  {
 | 
			
		||||
    const PBITMAPINFO bmi = (PBITMAPINFO)GlobalLock(clipboard);
 | 
			
		||||
    if (bmi != NULL)
 | 
			
		||||
    if (bmi == NULL)
 | 
			
		||||
      GFX2_Log(GFX2_ERROR, "GlobalLock() failed error 0x%08x\n", GetLastError());
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      unsigned long width, height;
 | 
			
		||||
      width = bmi->bmiHeader.biWidth;
 | 
			
		||||
@ -1317,9 +1319,9 @@ static void Load_ClipBoard_Image(T_IO_Context * context)
 | 
			
		||||
            {
 | 
			
		||||
              const byte * line;
 | 
			
		||||
              if (bmi->bmiHeader.biHeight > 0)
 | 
			
		||||
                line = pixels + (height - y - 1) * bmi->bmiHeader.biWidth;
 | 
			
		||||
                line = pixels + (height - y - 1) * ((bmi->bmiHeader.biWidth + 3) & ~3);
 | 
			
		||||
              else
 | 
			
		||||
                line = pixels + y * bmi->bmiHeader.biWidth;
 | 
			
		||||
                line = pixels + y * ((bmi->bmiHeader.biWidth + 3) & ~3);
 | 
			
		||||
              for (x = 0; x < width; x++)
 | 
			
		||||
                Set_pixel(context, x, y, line[x]);
 | 
			
		||||
            }
 | 
			
		||||
@ -1327,11 +1329,11 @@ static void Load_ClipBoard_Image(T_IO_Context * context)
 | 
			
		||||
          case 24:
 | 
			
		||||
            for (y = 0; y < height; y++)
 | 
			
		||||
            {
 | 
			
		||||
              const byte * line;
 | 
			
		||||
              const byte * line = pixels;
 | 
			
		||||
              if (bmi->bmiHeader.biHeight > 0)
 | 
			
		||||
                line = pixels + (height - y - 1) * bmi->bmiHeader.biWidth * 3;
 | 
			
		||||
                line += (height - y - 1) * ((bmi->bmiHeader.biWidth * 3 + 3) & ~3);
 | 
			
		||||
              else
 | 
			
		||||
                line = pixels + y * bmi->bmiHeader.biWidth * 3;
 | 
			
		||||
                line += y * ((bmi->bmiHeader.biWidth * 3 + 3) & ~3);
 | 
			
		||||
              for (x = 0; x < width; x++)
 | 
			
		||||
                Set_pixel_24b(context, x, y, line[x*3 + 2], line[x*3 + 1], line[x*3]);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user