termpix 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/termpix/protocols.rb +21 -7
- data/lib/termpix/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 34ec8fff70b1018305deaa94931516564e573406a713fac62bbf6691dfe120b8
|
|
4
|
+
data.tar.gz: fcf1056c196bf42680fc1f78b8067db71a64ee342651c6684cb78f34d27f6d1d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f706b1ff612ec9f6f08596833fe66b5fc1b50946c61aa76bb9c8a88ba327d6e595c5607fb439024a94e29d857b603801f577a05876864c8f8493a9bbdbc8a906
|
|
7
|
+
data.tar.gz: 4610351de9645c8dd6855d25f70b800e74b088633a6cf8d3bc02e785f104ac62230e637923bf4c7aa9251973c434e4917aaa6c0c60d15a1d1a27bad7eb4760c6
|
data/lib/termpix/protocols.rb
CHANGED
|
@@ -116,13 +116,28 @@ module Termpix
|
|
|
116
116
|
img_max_w = char_w * max_width
|
|
117
117
|
img_max_h = char_h * max_height
|
|
118
118
|
|
|
119
|
-
#
|
|
119
|
+
# Check if image has EXIF orientation data before auto-orienting
|
|
120
|
+
# This avoids unnecessary temp file creation for most images
|
|
120
121
|
escaped = Shellwords.escape(image_path)
|
|
121
|
-
temp_file = "/tmp/termpix_#{Process.pid}.jpg"
|
|
122
122
|
|
|
123
|
-
#
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
# Quick check: only auto-orient if image has EXIF orientation tag
|
|
124
|
+
has_orientation = `identify -format "%[EXIF:Orientation]" #{escaped}[0] 2>/dev/null`.strip
|
|
125
|
+
|
|
126
|
+
if has_orientation && !has_orientation.empty? && has_orientation != "1"
|
|
127
|
+
# Image needs rotation - create cached temp file
|
|
128
|
+
require 'digest'
|
|
129
|
+
file_hash = Digest::MD5.hexdigest(image_path)
|
|
130
|
+
temp_file = "/tmp/termpix_#{file_hash}.jpg"
|
|
131
|
+
|
|
132
|
+
unless File.exist?(temp_file)
|
|
133
|
+
system("convert #{escaped}[0] -auto-orient #{temp_file} 2>/dev/null")
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
display_path = File.exist?(temp_file) ? temp_file : image_path
|
|
137
|
+
else
|
|
138
|
+
# No rotation needed - use original image
|
|
139
|
+
display_path = image_path
|
|
140
|
+
end
|
|
126
141
|
|
|
127
142
|
dimensions = `identify -format "%wx%h" #{Shellwords.escape(display_path)} 2>/dev/null`.strip
|
|
128
143
|
return if dimensions.empty?
|
|
@@ -143,8 +158,7 @@ module Termpix
|
|
|
143
158
|
4;
|
|
144
159
|
3;' | #{@imgdisplay} 2>/dev/null`
|
|
145
160
|
|
|
146
|
-
#
|
|
147
|
-
File.delete(temp_file) if File.exist?(temp_file) && temp_file != image_path
|
|
161
|
+
# Don't delete temp file - keep it cached for performance
|
|
148
162
|
end
|
|
149
163
|
|
|
150
164
|
def self.clear(x:, y:, width:, height:, term_width:, term_height:)
|
data/lib/termpix/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: termpix
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Geir Isene
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-11-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
|
-
description: 'Termpix v0.2.
|
|
14
|
-
Provides clean API for displaying images in terminal using
|
|
15
|
-
(Sixel or w3m). Auto-detects terminal capabilities and falls
|
|
13
|
+
description: 'Termpix v0.2.1: Performance optimization - only auto-orients images
|
|
14
|
+
with EXIF rotation data. Provides clean API for displaying images in terminal using
|
|
15
|
+
best available protocol (Sixel or w3m). Auto-detects terminal capabilities and falls
|
|
16
|
+
back gracefully.'
|
|
16
17
|
email: g@isene.com
|
|
17
18
|
executables: []
|
|
18
19
|
extensions: []
|