我有一张图像,我希望将其划分为特定尺寸的图块(以及不适合的裁剪图块)。
此操作的输出应该是元组[(x, y, width, height),...]
中的坐标列表。例如,将大小为20的图块中的50x50图像分割为:[(0,0,20,20),(20,0,20,20),(40,0,10,20),(0,20,20,20),(20,20,20,20),(40,20,10,20),...]
等。
鉴于height
,width
和tile_size
,似乎我应该能够在单个列表理解中执行此操作,但我无法理解它。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
得到它:
@search = Product.sorted_by_special_price_asc_msrp_asc.search(search_params)
答案 1 :(得分:0)
import itertools
def tiles(h, w, ts):
# here is the one list comprehension for list of tuples
return [tuple(list(ele) + [ts if w-ele[0] > 20 else w-ele[0], ts if h-ele[1] > 20 else h-ele[1]]) for ele in itertools.product(*[filter(lambda x: x % ts == 0, range(w)), filter(lambda x: x % ts == 0, range(h))])]
print tiles(50, 50, 20)
[(0,0,20,20),(0,20,20,20),(0,40,20,10),(20,0,20,20),(20,20,20) ,20),(20,40,20,1 0),(40,0,10,20),(40,20,10,20),(40,40,10,10)]