Hướng dẫn python check image error - python kiểm tra lỗi hình ảnh

I am running Python 2.7 in Visual Studio 2013. The code previously worked ok when in Spyder, but when I run:

import numpy as np
import scipy as sp
import math as mt
import matplotlib.pyplot as plt
import Image
import random

# (0, 1) is N
SCALE = 2.2666 # the scale is chosen to be 1 m = 2.266666666 pixels
MIN_LENGTH = 150 # pixels

PROJECT_PATH = 'C:\\cimtrack_v1'
im = Image.open(PROJECT_PATH + '\\ST.jpg')

I end up with the following errors:

Traceback (most recent call last):
  File "", line 1, in 
  File "C:\cimtrack_v1\PythonApplication1\dr\trajgen.py", line 19, in 
    im = Image.open(PROJECT_PATH + '\\ST.jpg')
  File "C:\Python27\lib\site-packages\PIL\Image.py", line 2020, in open
    raise IOError("cannot identify image file")
IOError: cannot identify image file

Why is it so and how may I fix it?


As suggested, I have used the Pillow installer to my Python 2.7. But weirdly, I end up with this:

>>> from PIL import Image
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named PIL


>>> from pil import Image
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named pil

>>> import PIL.Image
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named PIL.Image

>>> import PIL
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named PIL

All fail!

Nếu bạn đã từng tạo một trang web bằng cách sử dụng HTML và có một hình ảnh không hiển thị hoặc một hình ảnh mà bạn có thể nhìn thấy, bạn có những gì được gọi là hình ảnh bị hỏng. Điều này có thể được gây ra bởi một vài vấn đề khác nhau, nhưng may mắn thay, nó dễ dàng khắc phục. Nếu bạn không quen thuộc với các hệ thống tệp, bạn có thể muốn đọc bài viết trước của tôi về việc làm việc với các tệp và thư mục trước khi tiếp tục. Tìm hiểu cách sửa một hình ảnh bị hỏng trên một trang web trong hướng dẫn hoàn chỉnh này.

Nội dung chính ShowShow

  • Tại sao hình ảnh của tôi không hiển thị?
  • Đảm bảo hình ảnh tồn tại
  • Kiểm tra & nbsp; fileName & nbsp; và mở rộng
  • Liên kết liên kết với các tệp từ máy tính của bạn
  • Bạn đã sẵn sàng để bắt đầu học hỏi?
  • Kiểm tra đường dẫn tệp
  • Đường dẫn tệp tương đối
  • Đường dẫn tệp tuyệt đối
  • Đường dẫn tuyệt đối so với tương đối
  • Khắc phục quyền tệp
  • Lời khuyên bổ sung
  • Làm thế nào để bạn hiển thị lỗi hình ảnh trong HTML?
  • Tại sao hình ảnh không mở trong HTML?
  • Tại sao hình ảnh hiển thị là HTML bị hỏng?

Tại sao hình ảnh của tôi không hiển thị?

Đảm bảo hình ảnh tồn tại

Kiểm tra & nbsp; fileName & nbsp; và mở rộng

Liên kết liên kết với các tệp từ máy tính của bạn

Đảm bảo hình ảnh tồn tại

Kiểm tra & nbsp; fileName & nbsp; và mở rộng

Kiểm tra & nbsp; fileName & nbsp; và mở rộng

Liên kết liên kết với các tệp từ máy tính của bạn

Liên kết liên kết với các tệp từ máy tính của bạn

Bạn đã sẵn sàng để bắt đầu học hỏi?incorrect example:

Hướng dẫn python check image error - python kiểm tra lỗi hình ảnh

Kiểm tra đường dẫn tệpincorrect example:

Hướng dẫn python check image error - python kiểm tra lỗi hình ảnh

Đường dẫn tệp tương đối

Bạn đã sẵn sàng để bắt đầu học hỏi?

Kiểm tra đường dẫn tệp

Đường dẫn tệp tương đối

Kiểm tra đường dẫn tệp

Đường dẫn tệp tương đối

Đường dẫn tệp tương đối

Đường dẫn tệp tuyệt đối

Hướng dẫn python check image error - python kiểm tra lỗi hình ảnh

Ví dụ trên sử dụng những gì mà A & nbsp; đường dẫn tệp tương đối. Nói cách khác, chúng tôi đang đề cập đến tệp hình ảnh liên quan đến vị trí hiện tại của tệp HTML. & NBSP; Trong thuộc tính src, chúng tôi đang nói với trang HTML rằng có một thư mục có tên Một tệp có tên là Cupcake.jpg, mà chúng tôi muốn hiển thị. & NBSP; Nếu vị trí của Cupcake.jpg thay đổi hoặc nếu vị trí của tệp HTML thay đổi, bạn phải cập nhật đường dẫn hình ảnh trong thuộc tính src để phản ánh những người thay đổi.

Đây là một khái niệm quan trọng để hiểu, vì vậy, hãy để nhìn vào ví dụ này bằng cách sử dụng sơ đồ. Xem xét cấu trúc thư mục sau:

Trong ảnh chụp màn hình này, index.html và thư mục IMG ở cùng một cấp độ trên mạng trong cây thư mục, giống như anh chị em trên cây gia đình. Điều đó có nghĩa là index.html có thể tự do tham khảo thư mục IMG mà không cụ thể hơn về vị trí của nó. Tuy nhiên, nếu chúng tôi muốn sử dụng hình ảnh Cupcake.jpg, chúng tôi sẽ cần phải nói với tệp index.html nơi đó. Chúng ta phải tham khảo thư mục IMG và & nbsp; sau đó Cupcake.jpg - chúng ta không thể đặt Cupcake.jpg, trong thuộc tính src, bởi vì nó được ẩn bên trong thư mục IMG và index.html không thể tìm thấy nó mà không Hoa Kỳ chỉ định vị trí của nó.

Hãy cùng xem xét một ví dụ nâng cao hơn một chút khi sử dụng CSS lần này thay vì HTML. Chúng tôi cũng sẽ sử dụng một cấu trúc thư mục phức tạp hơn:

Sử dụng ảnh chụp màn hình ở trên làm hướng dẫn của chúng tôi, điều gì sẽ xảy ra nếu chúng tôi muốn sử dụng Cupcake.jpg làm hình ảnh nền trong tệp style.css? Chúng ta có thể chỉ cần thả vào IMG/Cupcake.jpg, vì Style.css nằm trong thư mục CSS và thư mục IMG không phải là anh chị em của Style.css - họ ngồi ở các cấp độ khác nhau. Điều đó có nghĩa là chúng ta cần & nbsp; bước ra khỏi thư mục CSS và & nbsp; bước vào thư mục IMG. Chúng ta có thể di chuyển lên cây thư mục bằng hai khoảng thời gian ở đầu đường dẫn tệp, như thế này:

background-image: url('../img/cupcake.jpg');

Ở đây, cùng một ảnh chụp màn hình, nhưng với một hỗ trợ trực quan từng bước minh họa những gì mỗi phần của đường dẫn tệp đang làm:

Chúng tôi sẽ quay lại các đường dẫn tệp tương đối sau này, nhưng hãy để kiểm tra các đường dẫn tệp tuyệt đối trước.

Đường dẫn tệp tuyệt đối

Điều gì sẽ xảy ra nếu bạn cần sử dụng một hình ảnh mà ở một nơi khác trên internet trên một miền khác? Trong trường hợp đó, bạn có thể chỉ cần nói rằng IMG/Cupcake.jpg, và mong đợi sẽ có được một hình ảnh của một chiếc bánh cupcake (mặc dù điều đó có thể rất thú vị). Thay vào đó, bạn sẽ cần chỉ định vị trí của hình ảnh đó và trên trang web nào. Ví dụ: chúng tôi & nbsp; có thể sử dụng logo Treehouse như thế này:

Traceback (most recent call last):
  File "", line 1, in 
  File "C:\cimtrack_v1\PythonApplication1\dr\trajgen.py", line 19, in 
    im = Image.open(PROJECT_PATH + '\\ST.jpg')
  File "C:\Python27\lib\site-packages\PIL\Image.py", line 2020, in open
    raise IOError("cannot identify image file")
IOError: cannot identify image file
0

Tuy nhiên, đây là một ý tưởng tồi. Trên thực tế, tôi đã sử dụng một URL giả cho logo Treehouse ở đây vì bạn không nên sử dụng nó trong một thuộc tính src như thế này. Đây là lý do tại sao điều này là xấu:bad idea. In fact, I’ve used a fake URL for the Treehouse logo here because you shouldn’t ever use it in an src attribute like this. Here’s why this is bad:bad idea. In fact, I’ve used a fake URL for the Treehouse logo here because you shouldn’t ever use it in an src attribute like this. Here’s why this is bad:

  1. Đầu tiên, sử dụng logo hoặc hình ảnh từ trang web của người khác là vi phạm bản quyền trừ khi bạn có sự cho phép của chủ sở hữu bản quyền. Luật bản quyền thay đổi từ nơi này sang nơi khác, vì vậy hãy chắc chắn rằng bạn có quyền sử dụng hình ảnh và bạn có thể tuân thủ các luật hiện hành. Nếu bạn muốn tìm hiểu thêm về bản quyền, hãy xem những điều cơ bản về bản quyền trên Treehouse.
  2. Thứ hai là một cái gì đó được gọi là liên kết nóng bỏng, thường không ổn. Khi bạn liên kết trực tiếp đến một hình ảnh trên máy chủ khác của người khác thay vì lưu trữ nó trên máy chủ của riêng bạn, bạn đã sử dụng hết băng thông khác và bạn đã tiêu tốn của họ tiền thay vì tự trả tiền.not OK. When you link directly to an image on someone else’s server instead of hosting it on your own server, you’re using up someone else’s bandwidth and you’re costing them money instead of paying for it yourself.not OK. When you link directly to an image on someone else’s server instead of hosting it on your own server, you’re using up someone else’s bandwidth and you’re costing them money instead of paying for it yourself.
  3. Cuối cùng, bạn không có quyền kiểm soát hình ảnh này, bởi vì bạn không phải là người lưu trữ nó! Nếu chủ sở hữu tốt về điều đó, họ có thể chỉ cần yêu cầu bạn đưa liên kết nóng xuống. Nếu họ không tốt về điều đó, họ có thể thay đổi vị trí của hình ảnh và để lại cho bạn con đường bị hỏng. Đó vẫn không phải là điều tồi tệ nhất mà họ có thể làm mặc dù: họ có thể & nbsp; hoán đổi & nbsp; hình ảnh có hình ảnh khủng khiếp hoặc tục tĩu với cùng tên tệp và sau đó nó sẽ được hiển thị trên trang web của bạn! Điều này xảy ra thường xuyên hơn bạn nghĩ, nhưng đó là vì một số người quyết định trả thù những người khác để liên kết nóng ảnh của họ. Tôi không ở đây để đưa ra phán đoán đạo đức, nhưng nếu Hotlinker đã nhiều lần bỏ qua các yêu cầu để hạ gục hình ảnh, có lẽ họ xứng đáng với bất cứ điều gì sẽ đến với họ.

Đường dẫn tuyệt đối so với tương đối

Nếu bạn vẫn chưa biết thiết kế web, bạn sẽ luôn muốn sử dụng đường dẫn tệp tương đối. Theo nguyên tắc chung, chỉ sử dụng đường dẫn tệp & nbsp; nếu bạn & nbsp; hoàn toàn phải và bạn có một lý do rất cụ thể để làm như vậy.

Vì vậy, khi nào thì sử dụng url & nbsp; url tuyệt đối & nbsp; Có lẽ có nhiều trường hợp sử dụng cụ thể trang web, nhưng một trường hợp phổ biến là nếu bạn sử dụng CDN (mạng phân phối nội dung). Trong trường hợp này, bạn đã trả tiền cho một công ty khác để sử dụng cơ sở hạ tầng của họ để bạn có thể phục vụ hình ảnh nhanh hơn. Ví dụ: để tăng tốc độ tải trang trên Treehouse, chúng tôi sử dụng CDN để lưu trữ gần như tất cả các hình ảnh của chúng tôi và trong mã của chúng tôi, chúng tôi sử dụng đường dẫn URL đầy đủ đến những hình ảnh đó để truy xuất chúng. Chúng tôi phải, bởi vì họ không được lưu trữ trên miền của chúng tôi. Mặc dù vậy, điều đó có thể làm được, bởi vì chúng tôi không chỉ nóng liên kết các hình ảnh của một số trang web ngẫu nhiên mà chúng tôi không có một mức độ kiểm soát nào đó; Thay vào đó, nó là một dịch vụ mà chúng tôi trả tiền.

Khắc phục quyền tệp

Nếu bạn vẫn còn một hình ảnh bị hỏng và bạn đã kiểm tra ba vị trí tệp, tên tệp, phần mở rộng tệp và đường dẫn tệp tương đối, thì có thể có điều gì đó không đúng với những gì được gọi là quyền của tệp. Thông thường chúng được đặt thành các giá trị chính xác một cách tự động, nhưng đôi khi khi bạn tải lên trang web của mình lên máy chủ, các quyền có thể vô tình thay đổi vì một số lý do. Nếu bạn điều hướng đến trang web của bạn và một tệp có các quyền sai, nó có thể gây ra một hình ảnh bị hỏng.

Trên Treehouse, đôi khi chúng tôi sử dụng CyberDuck để chứng minh tải lên tệp, vì vậy chúng tôi sẽ sử dụng nó trong ví dụ của chúng tôi ở đây. Cyberduck là một ứng dụng FTP đa nền tảng miễn phí cho phép bạn tải lên các tệp. Tuy nhiên, & nbsp; tùy thuộc vào cách bạn tải lên các tệp của mình, bạn có thể cần làm theo các bước khác nhau để thay đổi quyền. Tuy nhiên, các nguyên tắc vẫn giữ nguyên.

Trong CyberDuck, kết nối với máy chủ của bạn và sau đó nhấp chuột phải vào tệp dường như gặp sự cố. Sau đó, chọn thông tin trên mạng từ menu ngữ cảnh.

Khi bạn đã chọn thông tin, bạn sẽ thấy một cửa sổ bật lên trông giống như hình ảnh bên dưới. Đảm bảo rằng khu vực quyền của người Viking được chọn.

Bất kỳ hình ảnh hoặc tài sản khác cần phải có thể đọc được bởi mọi người. Trong ví dụ cụ thể này, tệp Nick NickPettit.jpg có thể được đọc bởi bất kỳ ai truy cập trang web. & NBSP; Tệp về cơ bản hoạt động giống như một chương trình nhỏ. & NBSP; Nếu một tệp có thể truy cập công khai, hãy đảm bảo rằng nó có thể được mọi người đọc!

Để tìm hiểu thêm về quyền của tệp, hãy xem video này trong các nền tảng bảng điều khiển trên Treehouse.

Lời khuyên bổ sung

Nếu bạn vẫn chưa biết thiết kế và phát triển web, một hình ảnh bị hỏng có thể xuất hiện rất nhiều. Luôn đảm bảo & nbsp; kiểm tra ba thứ trong bài viết này. Nếu một hình ảnh bị phá vỡ, tỷ lệ cược khá tốt mà bạn đã bỏ qua một cái gì đó, ngay cả khi bạn đã kiểm tra nó một hoặc hai lần và bạn nghĩ rằng nó là chính xác. Kiểm tra nó, kiểm tra lại, và sau đó kiểm tra thêm một lần nữa.triple check all the things in this article. If an image is broken, odds are pretty good that you’ve simply overlooked something, even if you’ve already checked it once or twice and you thought it was correct. Check it, check it again, and then check it one more time.triple check all the things in this article. If an image is broken, odds are pretty good that you’ve simply overlooked something, even if you’ve already checked it once or twice and you thought it was correct. Check it, check it again, and then check it one more time.

Nếu bạn có bất kỳ lời khuyên bổ sung nào mà bạn nghĩ nên được thêm vào bài viết này, tôi sẽ thích nghe về họ trong các bình luận!

Làm thế nào để bạn hiển thị lỗi hình ảnh trong HTML?

Trong HTML, điều này có thể được thực hiện với thuộc tính onerror của thẻ.with the onerror attribute of the tag.with the onerror attribute of the tag.

Tại sao hình ảnh không mở trong HTML?

Các đường dẫn tệp không chính xác Khi bạn thêm hình ảnh vào tệp HTML hoặc CSS của trang web, bạn phải tạo một đường dẫn đến vị trí trong cấu trúc thư mục của bạn nơi các tệp đó nằm.Đây là mã cho biết trình duyệt nơi tìm kiếm và tìm nạp hình ảnh từ đó.Trong hầu hết các trường hợp, đây sẽ là bên trong một thư mục có tên là hình ảnh. When you add images to a site's HTML or CSS file, you must create a path to the location in your directory structure where those files reside. This is code that tells the browser where to look for and fetch the image from. In most cases, this would be inside a folder named images. When you add images to a site's HTML or CSS file, you must create a path to the location in your directory structure where those files reside. This is code that tells the browser where to look for and fetch the image from. In most cases, this would be inside a folder named images.

Tại sao hình ảnh hiển thị là HTML bị hỏng?

Khi bạn xuất bản một hình ảnh, tên tệp và vị trí hình ảnh trở thành một phần của mã HTML trang web.Nếu sau đó bạn quyết định thay đổi tên của hình ảnh hoặc chuyển nó sang một thư mục mới và bạn không cập nhật HTML của trang web của mình để phản ánh những thay đổi đó, khách truy cập sẽ thấy biểu tượng hình ảnh bị hỏng.If you later decide to change the name of the image or move it to a new folder, and you don't update the HTML of your web page to reflect those changes, visitors will see a broken image icon.If you later decide to change the name of the image or move it to a new folder, and you don't update the HTML of your web page to reflect those changes, visitors will see a broken image icon.