Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7dfb4e4

Browse files
authored
Merge pull request#29933 from meeseeksmachine/auto-backport-of-pr-29931-on-v3.10.x
2 parents09bea95 +4cd3b06 commit7dfb4e4

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

‎lib/matplotlib/image.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1536,7 +1536,8 @@ def imsave(fname, arr, vmin=None, vmax=None, cmap=None, format=None,
15361536
extension of *fname*, if any, and from :rc:`savefig.format` otherwise.
15371537
If *format* is set, it determines the output format.
15381538
arr : array-like
1539-
The image data. The shape can be one of
1539+
The image data. Accepts NumPy arrays or sequences
1540+
(e.g., lists or tuples). The shape can be one of
15401541
MxN (luminance), MxNx3 (RGB) or MxNx4 (RGBA).
15411542
vmin, vmax : float, optional
15421543
*vmin* and *vmax* set the color scaling for the image by fixing the
@@ -1567,6 +1568,10 @@ def imsave(fname, arr, vmin=None, vmax=None, cmap=None, format=None,
15671568
default 'Software' key.
15681569
"""
15691570
frommatplotlib.figureimportFigure
1571+
1572+
# Normalizing input (e.g., list or tuples) to NumPy array if needed
1573+
arr=np.asanyarray(arr)
1574+
15701575
ifisinstance(fname,os.PathLike):
15711576
fname=os.fspath(fname)
15721577
ifformatisNone:

‎lib/matplotlib/tests/test_image.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,28 @@ def test_imsave(fmt):
184184
assert_array_equal(arr_dpi1,arr_dpi100)
185185

186186

187+
deftest_imsave_python_sequences():
188+
# Tests saving an image with data passed using Python sequence types
189+
# such as lists or tuples.
190+
191+
# RGB image: 3 rows × 2 columns, with float values in [0.0, 1.0]
192+
img_data= [
193+
[(1.0,0.0,0.0), (0.0,1.0,0.0)],
194+
[(0.0,0.0,1.0), (1.0,1.0,0.0)],
195+
[(0.0,1.0,1.0), (1.0,0.0,1.0)],
196+
]
197+
198+
buff=io.BytesIO()
199+
plt.imsave(buff,img_data,format="png")
200+
buff.seek(0)
201+
read_img=plt.imread(buff)
202+
203+
assert_array_equal(
204+
np.array(img_data),
205+
read_img[:, :, :3]# Drop alpha if present
206+
)
207+
208+
187209
@pytest.mark.parametrize("origin", ["upper","lower"])
188210
deftest_imsave_rgba_origin(origin):
189211
# test that imsave always passes c-contiguous arrays down to pillow

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp