公共カバービルダーの無用数

公共カバービルダーの無用数

あらゆる芸術的な細胞のない人のために、公共の番号を書くための最も厄介カバーの記事か悪い選挙マップに等しいです、マップがそれを選択し、公共の数字この2.35:1の比率は奇妙な問題のトリミングされたが伴うだろう...

だから、おそらくあなたが発見した、私の記事のカバーは簡単である。純粋な絵は問題がトリミング回避し、それらのものは清流が彪デザインの感覚との美学を軽薄になります

しかし、一見魂のない唯一のソリッドカラー写真、。

今日doが魂の中に私のきれい状のカバーを与えることです。

非常に非標準のクラス図

ここでは、非標準クラス図の例であり、学ぶことしないでください。

カバー世代
カバー世代
デコードモジュール
デコードモジュール

集計のアイデア

実際には、アイデアは非常に簡単です

  • UTF-8のテキストを取得し、バイナリ復号化されたシーケンス
  • デコードされたバイナリ文字列は、128ビットのダイジェストを得るためにMD5ダイジェスト
  • random.randomint()によってランダムにRGBの色を選択し3つのバイトは、この128ビットのバイナリ列を行います。
  • ローカルに保存された253×100の画像を生成します。データベースに格納されているMongoDBの中の情報を。

さらに簡単なデコードいわゆる、よく知られたMD5アルゴリズムは可逆的ではない...プラス私は色によって復号化することにしたいので、3つのランダムバイトを取らなければならなかったことはできません。

しかし!!!関連情報がデータベースに保存された前ので、私は...素晴らしい方法を持っているので、我々はそれ上のデータベースに直接RGBカラー値を取得します。(私も賢いことはできません)

サポート技術情報の概要

乾燥に注意してください!

の入力を処理

入力内容の処理をすることは比較的簡単な希望です

    def encode(self):
return hashlib.md5(self.raw_input_str.encode('utf-8')).hexdigest()

def color_generator(self, raw_digest):
r_index = random.randint(0, 30)
g_index = random.randint(0, 30)
b_index = random.randint(0, 30)

r_color = int(raw_digest[r_index:r_index + 2], base=16)
g_color = int(raw_digest[g_index:g_index + 2], base=16)
b_color = int(raw_digest[b_index:b_index + 2], base=16)

return r_color, g_color, b_color

最初の使用M5()メソッドとhexdigest()メソッドは、ハッシュ値hashlibを取得します。

その後、3バイトのランダムアウト時に、それぞれ、RGBの色は、それを作るために。

画像処理

接触無しまで約チェックパイソン共通の画像処理モジュールの下に具体的にこの一つの画像処理、に等しいです。

  • numpyのは、 このライブラリーは、科学技術計算のための基本的なライブラリであり、主にN次元の配列オブジェクト、ならびにフーリエ変換などのいくつかの基本的な数学的計算を処理するために使用される、線形代数は、治療センター画像ライブラリと考えることができます。
  • OpenCV : 一个专业的计算机视觉库. 可以用于图像视频等的处理,比如人脸识别之类...
  • PIL: Python自带的图像处理库,由于年久失修,目前处于门可罗雀的状态
  • Pillow: PIL的志愿者版本,由于PIL已经很久没有维护,功能简单而且只支持到python2.x. 所以志愿者们在PIL的基础上开发出了pillow,支持更多的功能且支持python3
  • Pillow-SIMD: PIL究极进化版,速度更快,功能更强. SIMD指的是single instruction multiple data(单指令,多数据),是一种对海量数据进行相同操作的算法. 据说速度可以媲美OpenCV

pillow是PIL的一个分支,而pillow-simd是pillow的一个分支.因为我也是第一次接触图像处理. 我发现很神奇的是 pillow的文档和pillow-simd的文档竟然是一个. 但是在安装的时候 又是两个包...没有搞明白怎么回事. 如果有大神知道的话,麻烦留言解惑.

pillow模块的基本使用

这次我采用的是Pillow,原因很简单,杀鸡焉用牛刀. 只是需要生成一个纯色的小图片而已. 安装很简单,如果使用Anaconda的话,它已经集成了pillow包. 如果使用的是纯python3的环境,pip install pillow就可以了.

在引入包的时候需要注意. 虽然我们用的是pillow,但是它的包名依旧是PIL. 所以在引入包的时候需要注意.

from PIL import Image

这次使用的是最基础的方法. 主要就是创建图像. 相关方法的具体文档,请查阅这里

  • PIL.Image.open(fp, mode='r')

    • 作用: 打开一个图像文件.
    • 参数:
      • fp:文件句柄或者文件路径
      • mode: 和文件操作时候的mode一样,r表示只读,w表示只写. w+表示读写
    • 返回值: Image对象
  • PIL.Image.new(mode, size, color=0)

    • 作用: 创建一个Image对象.
    • 参数:
      • mode:图像模式,具体参考文档.
      • size:图像大小
      • color:颜色
    • 返回值: Image对象
  • Image.save(fp, format=None, **params)

    • 作用: 保存图像到文件
  • Image.show(title=None, command=None)

    • 作用: 调用本地看图软件打开图像
  • Image.close()

这里要说的是,既然有open方法也有close方法. 这个Image对象也是支持with上下文管理器的.

所以打开一个图像的时候可以直接使用with...as...语法

pillow模块的简单示例

打开一个图片文件并显示

def show_img()
with Image.open(self.file_path) as img:

img.show()
return img

生成一个新的纯色图片并保存到文件

def new_a_image():
img = Image.new('RGB',(253,100),(240,233,204))
img.save('demo.jpg')

获取某个像素点的RGB值

    def get_color_from_file(self):
with Image.open(self.file_path) as img:
color = img.getpixel((100, 100))
return color

mongoDB数据库基本操作

MongoDB是一款开源的,高性能的非关系型数据库. 也就是传说中的NoSQL数据库中的热门款. 主要以key-value为作为存储结构.

具体的な導入は、このブログの記事で見つけることができます:MongoDBの紹介

ここでは簡単な操作MongoDBはです。

MongoDBのインストールとロボ3T設置など、私は少し本を書かれている。無料のMongoDBの基本的な操作を説明し、再び今日簡単に書くこと。

Pythonでは、私たちは、使用している pymongoはこのモジュールは、MongoDBのデータベースを運営しています。

基本的な使用は簡単ですが、コードの小片を容易に理解することができ置きます。

import pymongo

MONGO_URL = 'localhost'
MONGO_DB = 'wmcoding_cover'
MONGO_TABLE = 'cover'


# 声明连接客户端
client = pymongo.MongoClient(MONGO_URL, connect=False)
# 声明要操作的数据库
db = client[MONGO_DB]

# 保存数据到mongoDB. 直接使用insert_one()方法就可以了
def save_to_mongo(self, digest, color, feeling, file_path):
res = {
'digest': digest,
'color': color,
'dscp': feeling,
'path': file_path
}

if db[MONGO_TABLE].insert_one(res):
print('cover save to database successful!')
return True
return False

# 同样检索的话,使用find_one()方法,获取一条记录. 该记录会以列表的形式展现
def decode(self):
if self.file_path:
self.color = self.get_color_from_file()
res = db[MONGO_TABLE].find_one({'color': list(self.color)})
return res['dscp']

その他の操作は、MongoDBの崔ギャングの記事で見つけることができます:この1つは十分にあるのPythonはMongoDBの外観を操作します

コードはgithubのにアップロードされた、関心が外観に使用することができます。カバージェネレーター

言葉の後

このバージョンは今比較的簡単。

次の計画は、GUIインタフェースを追加するためにそれを与えることです。

計画の次のステップは、オンライン版にマイクロチャネルパブリック数ドッキングに変更されます。

ユーザーの各国民の関心の数を達成するためにアップロードカバーアートの後「エレガントで韻の完全な」テキストカバーの後ろを見ることができます...

おすすめ

転載: www.cnblogs.com/thecatcher/p/12500831.html