Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
даже реально выгрузить самостоятельноА картинки реально в виде архива или доступа где-то найти?
Подскажите, пожалуйста, откуда )
берете текдок - устанавливаете. Далее поднимаете вебсервер у себя, далее запускаете скрипт,Я скачивал какой-то архив, разбитый на много частей гигов на 80 с картинками, но это было давно. А мне надо сейчас )
Кто реально в теме я вижу ) И достижения тех, кто в теме, видел.
берете текдок - устанавливаете. Далее поднимаете вебсервер у себя, далее запускаете скрипт,
конектите с текдоком. Наличие коннекта к мускулу обязательно, так же как и ODBC коннектор. Запускаете - далее ждете - все зависит от мощности Вашего компа. У меня это занимает 5-6 часов. Далее полученные файлы в формате JP2 конвертируете в JPG любой программой конвертором. После этого я бы еще рекомендовал простись программой сжатия. Загружатете их на Ваш сервер - и все. Картинки у Вас
P.S. В данном случае скрипт настроен для выгрузки картинок 3-го квартала 2016 года. Если у Вас другая версия поменять соответствующие цифры
Его создать надо. В начале установить сам коннектор MySQL/ODBC а потом прописать пользовательское подключениеэкспорт картинок
public void exportPictures() {
final String mysqlTable = "tof_graphics";
final String sqlDropTable = "DROP TABLE IF EXISTS " + mysqlTable;
final String sqlCreateTable = " CREATE TABLE IF NOT EXISTS " + mysqlTable + " (" +
"article_id int(11), " +
"image VARCHAR(100)" +
") ENGINE=MYISAM DEFAULT CHARSET=utf8";
final String[] sqlIndexes = {
"ALTER TABLE " + mysqlTable + " ADD INDEX (article_id)"
};
Statement st;
Statement mysqlSt;
try {
System.out.println("Export pictures");
st = connection.createStatement();
ResultSet result = st.executeQuery("SELECT LGA_ART_ID, GRA_ID, GRA_TAB_NR, GRA_GRD_ID, DOC_EXTENSION, GRA_LNG_ID FROM TOF_LINK_GRA_ART, TOF_GRAPHICS, TOF_DOC_TYPES WHERE DOC_TYPE=GRA_DOC_TYPE AND LGA_GRA_ID=GRA_ID AND GRA_TAB_NR IS NOT NULL ORDER BY GRA_TAB_NR");
ResultSetMetaData metaResult = result.getMetaData();
mysqlSt = mysqlConnection.createStatement();
mysqlSt.executeUpdate(sqlDropTable);
mysqlSt = mysqlConnection.createStatement();
mysqlSt.executeUpdate(sqlCreateTable);
for (String sql : sqlIndexes) {
mysqlSt = mysqlConnection.createStatement();
mysqlSt.executeUpdate(sql);
}
int count = 0;
ArrayList<Integer> tableNumber = new ArrayList<Integer>();
ArrayList<Integer> ids = new ArrayList<Integer>();
ArrayList<Integer> articles = new ArrayList<Integer>();
while (result.next()) {
tableNumber.add(count, result.getInt(3));
ids.add(count, result.getInt(4));
articles.add(count, result.getInt(1));
count++;
System.out.println(count);
}
int limit = 1000;
String sql = "INSERT INTO " + mysqlTable + " VALUES (?, ?)";
PreparedStatement ps = mysqlConnection.prepareStatement(sql);
mysqlConnection.setAutoCommit(false);
for (int i = 0; i < ids.size(); i++) {
ps.setLong(1, articles.get(i));
System.out.println(tableNumber.get(i)+ "/" + ids.get(i) + ".jpg");
ps.setString(2, tableNumber.get(i)+ "/" + ids.get(i) + ".jpg");
ps.addBatch();
if (i % 5000 == 4500) {
System.out.println(i);
ps.executeBatch();
mysqlConnection.commit();
}
}
ps.executeBatch();
mysqlConnection.commit();
ps.close();
for (int i = 0; i < ids.size(); i++) {
try {
OutputStream output = null;
try {
File dir = new File("/Users/leo/images/" + tableNumber.get(i)+ "/");
if (!dir.exists()) {
dir.mkdir();
}
File file = new File("/Users/leo/images/" + tableNumber.get(i)+ "/" + ids.get(i) + ".jpg");
System.out.print(i + " " +tableNumber.get(i)+ "-" + ids.get(i));
if (file.exists()) {
System.out.println(" - skip");
;
}
System.out.println(" - write");
Statement st3 = connection.createStatement();
String sql = "SELECT GRD_GRAPHIC FROM TOF_GRA_DATA_" + tableNumber.get(i) + " WHERE GRD_ID=" + ids.get(i);
ResultSet result2 = st3.executeQuery(sql);
result2.next();
byte[] data = result2.getBytes(1);
output = new BufferedOutputStream(new FileOutputStream(file));
output.write(data);
output.close();
this.convertImage("/Users/leo/images/" + tableNumber.get(i)+ "/" + ids.get(i) + ".jpg");
} catch(FileNotFoundException ex){
ex.printStackTrace();
}
} catch(IOException ex){
ex.printStackTrace();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Конвертация из в JPEG JPEG2000
public boolean convertImage(String path) {
try {
Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("JPEG2000");
ImageReader reader = iter.next();
if(reader == null) {
System.out.println("Could not locate any Readers for the JPEG 2000 format image.");
return true;
} else {
// System.out.println(reader.getFormatName());
}
BufferedImage image = null;
image = ImageIO.read(new File(path));
File outputFile = new File(path);
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpeg").next();
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); // Needed see javadoc
param.setCompressionQuality(0.9F); // Highest quality
writer.setOutput(ImageIO.createImageOutputStream(outputFile));
writer.write(null, new IIOImage(image, null, null), param);
writer.dispose();
} catch (IOException e) {
e.printStackTrace();
}
return true;
}