| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		ProgMan13
 
 
  Joined: 19 Aug 2009 Posts: 338
 
  | 
		 | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Skif_off
 
 
  Joined: 28 Nov 2012 Posts: 1244
 
  | 
		
			
				  (Separately) Posted: Sun Nov 22, 2020 12:43    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | ProgMan13 wrote: | 	 		  | Поля "Calculated Width" и "Calculated Height" показывают размеры изображения при конвертации в растр (rsvg и Inkscape). | 	  
 
Не могли бы вы описать алгоритм или ткнуть носом, где почитать? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		ProgMan13
 
 
  Joined: 19 Aug 2009 Posts: 338
 
  | 
		
			
				  (Separately) Posted: Mon Nov 23, 2020 15:50    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Skif_off
 
Там просто. Сначала прочитать "width" и "height", если их нет - "viewBox".
 
Если ничего нет - оставить на откуп рендера. RSVG такие файлы может неправильно отображать. 
 
Если полученные значения без единиц измерения или "px" - ничего пересчитывать не надо. Для RSVG остальные значения пересчитываются для 90 dpi.
 
Встречаются файлы с дикими размерами: https://openclipart.org/detail/322232/ss-californian. Такие в SVGView ограничиваются 5000-ми пикселей. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Skif_off
 
 
  Joined: 28 Nov 2012 Posts: 1244
 
  | 
		
			
				  (Separately) Posted: Mon Nov 23, 2020 19:37    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				ProgMan13, с пересчитыванием возникли сложности  
 
 
Так понял, если N pt, то считаем: (1 / 72) * N * dpi
 
Если dpi нет - берём равным 90. (Тоже немного непонятно, стандартно обычно 72 или 96, в зависимости от целей, но это ладно.)
 
 
Если только viewBox, то для viewBox="x1, x2, x3, x4" считаем
 
width = x3 - x1
 
heigh = x4 - x2
 
и результат будет в px, так? (x1 и x2 вроде обычно равны 0, но на всякий.)
 
 
А если mm, cm или in, то нужно пересчитать недюймы в дюймы (1 in = 2.54 cm) и умножить на dpi? Просто нашёл такую таблицу
 
 	  | Code: | 	 		  1mm (мм) = 3.8 px
 
1cm (см) = 38 px
 
1pc (типографская пика) = 16 px
 
1pt (типографский пункт) = 4/3 px  | 	  
 
и такую
 
 	  | Code: | 	 		  1 пункт = 1.338307 пикселей
 
1 пиксель = 0.747213 пунктов  | 	  
 
и немного завис...
 
 
Для шрифтов ещё можно использовать em и проценты, в SVG такое вряд ли попадётся? И pc можно пренебречь? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		ProgMan13
 
 
  Joined: 19 Aug 2009 Posts: 338
 
  | 
		
			
				  (Separately) Posted: Tue Nov 24, 2020 13:21    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Skif_off
 
Для pt: Round(N / 72 * DPI).
 
Для cm: Round(N / 2.54 * DPI).
 
Для pc:  Round(N * (16 / 96 * DPI)).
 
У viebox 3 и 4 значения - ширина и высота.
 
С процентами сложнее. Но в основном там везде 100% и данные можно брать из viewbox. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Skif_off
 
 
  Joined: 28 Nov 2012 Posts: 1244
 
  | 
		
			
				  (Separately) Posted: Tue Nov 24, 2020 17:25    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				ProgMan13
 
Понял, спасибо!
 
 
Для "Calculated Width" и "Calculated Height", может быть, стоит добавить и 72? Если правильно понял, Illustrator по умолчанию импортирует/экспортирует с 72.
 
 
И, может быть, есть смысл уточнить в описании, что если width и heigh указаны в пикселях, то все items плагин вернёт без пересчёта? Неофиты могут растеряться, что все выходят одинаковые   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		ProgMan13
 
 
  Joined: 19 Aug 2009 Posts: 338
 
  | 
		
			
				  (Separately) Posted: Sat Dec 05, 2020 00:08    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Skif_off
 
Добавил 72 DPI.
 
Не уверен, что неофитам плагин будет интересен. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |