Bug 423959 - The ppi of an image affects the pixel size of vector objects copied into it and creates artifacts with layer copying.
Summary: The ppi of an image affects the pixel size of vector objects copied into it a...
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: Layers/Vector (show other bugs)
Version: nightly build (please specify the git hash!)
Platform: Debian stable Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-07-07 07:40 UTC by Ahab Greybeard
Modified: 2024-08-22 16:38 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ahab Greybeard 2020-07-07 07:40:43 UTC
SUMMARY
This happens in all appimages from 4.2.0 to the Jul 06 5.0.0 prealpha (git 193770b)

STEPS TO REPRODUCE
(Image size and ppi values are illustrative.)

1. Create a first new image of 2048 x 2048 pixels at 100 ppi
2. Create a second new image of 2048 x 2048 pixels at 150 ppi
3. Draw a vector shape in the first image, select it and copy it.
4. Paste the copied vector shape into a vector layer in the second image.
NOTE: The pasted vector shape in the second image is 150% of the size of the shape in the first image.

5. Create a third new image of 2048 x 2048 at 150 ppi
6. In the first image, copy the vector layer and paste it into the third image.
NOTE: An apparently correct size vector object appears.
7. Try to select that vector object.
NOTE: It can't be selected. It's an artifact.
8. Use the MOVE tool to try to move it.
NOTE: A 150% size object appears and moves but the artifact remains. The bounding box encloses both the artifact and the 150% size vector object.
9. Try to use layer visibility manipulation to remove the artifact.
NOTE: It won't go away.
10. Save, Close and reopen the image.
NOTE: The artifact has gone but is in the preview and merged image of the .kra file.

11. After repeating Steps 5-8, Move the 150% size (movable) object so that it wipes over the artifact.
NOTE: The artifact is removed.

OBSERVED RESULT
See Steps To Reproduce

EXPECTED RESULT
The pasted vector shape should be the same size in pixels in both images and be unaffected by image dpi.
The artifact on layer pasting should not occur.

SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.0-prealpha (git 193770b)
 Languages: en_GB, en, en, en_GB, en
 Hidpi: true

Qt

  Version (compiled): 5.12.9
  Version (loaded): 5.12.9

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 4.19.0-9-amd64
  Pretty Productname: Debian GNU/Linux 10 (buster)
  Product Type: debian
  Product Version: 10
  Desktop: MATE

OpenGL Info
 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "GeForce GTX 750 Ti/PCIe/SSE2" 
  Version:  "4.6.0 NVIDIA 440.82" 
  Shading language:  "4.60 NVIDIA" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:    QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
     Version: 4.6
     Supports deprecated functions true 
     is OpenGL ES: false 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

Hardware Information

  GPU Acceleration: desktop
  Memory: 16039 Mb
  Number of Cores: 8
  Swap Location: /tmp

Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 83
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Use AMD Vectorization Workaround: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: false


Display Information
Number of screens: 2
	Screen: 0
		Name: DVI-D-1
		Depth: 24
		Scale: 1
		Resolution in pixels: 1280x1024
		Manufacturer: Dell Inc.
		Model: DELL 1704FPV-
		Refresh Rate: 60
	Screen: 1
		Name: DVI-D-0
		Depth: 24
		Scale: 1
		Resolution in pixels: 1280x1024
		Manufacturer: Dell Inc.
		Model: DELL 1704FPV-
		Refresh Rate: 75
Comment 1 Anna Medonosova 2020-07-12 21:21:22 UTC
I can confirm both issues in 4.3.0 appimage and in locally compiled git master.


Krita

 Version: 4.3.0
 Languages: C
 Hidpi: true

Qt

  Version (compiled): 5.12.8
  Version (loaded): 5.12.8

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 5.4.0-40-generic
  Pretty Productname: Ubuntu 20.04 LTS
  Product Type: ubuntu
  Product Version: 20.04
  Desktop: KDE

OpenGL Info
 
  Vendor:  "Intel" 
  Renderer:  "Mesa Intel(R) HD Graphics 620 (KBL GT2)" 
  Version:  "4.6 (Compatibility Profile) Mesa 20.0.8" 
  Shading language:  "4.60" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:    QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
     Version: 4.6
     Supports deprecated functions true 
     is OpenGL ES: false 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

Hardware Information

  GPU Acceleration: auto
  Memory: 7849 Mb
  Number of Cores: 4
  Swap Location: /tmp/user/1000

Current Settings

  Current Swap Location: /tmp/user/1000
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 30
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Use AMD Vectorization Workaround: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 900
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: false


Display Information
Number of screens: 2
	Screen: 0
		Name: HDMI-2
		Depth: 24
		Scale: 1
		Resolution in pixels: 1920x1080
		Manufacturer: NEC Corporation
		Model: EA224WMi-
		Refresh Rate: 60
	Screen: 1
		Name: eDP-1
		Depth: 24
		Scale: 1
		Resolution in pixels: 1920x1080
		Manufacturer: Chimei Innolux Corporation
		Model: 
		Refresh Rate: 60
Comment 2 Dmitry Kazakov 2024-08-22 16:38:48 UTC
Remove triaged keyword from CONFIRMED bugs